当前位置: 首页 > 知识库问答 >
问题:

构建请求时出现Android改装错误

辛承志
2023-03-14

我想知道是否有人能告诉我为什么当我尝试使用改版执行RESTfull服务时会出现错误请求错误

翻新接口:

public class RetrofitInterface {
    private static StockApiInterface sStockService;

    public static StockApiInterface getStockApiClient() {
        if (sStockService == null) {
            RestAdapter restAdapter = new RestAdapter.Builder()
                    .setEndpoint("http://query.yahooapis.com/v1/public")
                    .build();
            sStockService = restAdapter.create(StockApiInterface.class);
        }

        return sStockService;
    }

    public interface StockApiInterface {
        @GET("/yql")
        void listQuotes(@Query("q") String query,Callback<Stock> stockInfo);
    }


}

MainActivity中的Asyntask

public class extraThread extends AsyncTask<Void, Void, Void>{

    @Override
    protected Void doInBackground(Void... params) {
        // TODO Auto-generated method stub
        RetrofitInterface.getStockApiClient().listQuotes("select%20*%20from%20yahoo.finance.quotes%20where%20symbol%20in%20(\"AIB.IR\")%0A%09%09&format=json&diagnostics=true&env=http%3A%2F%2Fdatatables.org%2Falltables.env&callback=", new Callback<Stock>() {


            @Override
            public void failure(RetrofitError arg0) {
                // TODO Auto-generated method stub
                arg0.printStackTrace();
            }

            @Override
            public void success(Stock arg0, Response arg1) {
                // TODO Auto-generated method stub

            }
        });

    }

}

结果总是失败。我最初认为问题是因为Reverfit内置的gson转换器在将响应转换为stock对象时遇到了麻烦,因为我只收到了一个“reverfit.retrofiterror”响应。但是“bad request”响应让我认为问题出在API的URL上。下面是我想要的响应URL:

谁能告诉我,我在代码中是否正确地构建了这一点?一个可能的问题是我在查询中转义了我的引文。也许这会造成问题?

以防万一我会张贴我的股票对象。我在一个在线POJO转换器的帮助下编写了这篇文章

public class Stock {

    @Expose
    private Query query;

    public Query getQuery() {
        return query;
    }


    public void setQuery(Query query) {
        this.query = query;
    }

}

我们将非常感谢在这方面的任何帮助。

共有1个答案

邓宜年
2023-03-14

您正在尝试使用一个查询字符串参数,而不是多个。这是行不通的,请参考这个问题。另外,不需要对查询内容进行编码,改型会自动进行(见文档):

参数值默认为URL编码。指定EncodeValue=False以更改此行为。

 类似资料:
  • 你好,我发送了一个Telegram的Github源代码。但当我试图构建apk时,我得到了两种类型的错误--首先是-External Native build Issues,其中包含以下详细信息- 第二个错误指向文件-c:\users\the\appdata\local\android\sdk\ndk-bundle\build\core\prebuild-library.mk,该文件包含此- pre

  • 我正在开发一个ASP.Net MVC 4应用程序,我使用Azure Blob来存储我的用户将要上传的图像。我有以下代码: 一旦执行if语句,我就会收到以下异常: 我以为这是集装箱的名字,但我看不出有什么问题。连接字符串似乎为blob创建了一个包含所有详细信息的良好存储。我不知所措。我研究过网络,每个人都说这是一个命名问题,但我没有发现任何错误。 我使用的测试容器名称:< code > imagea

  • 当我尝试构建Unity项目(Android)时,它说: 命令调用失败:无法更新SDK。请手动运行SDK管理器以确保您安装了最新的工具集和所需的平台。 以下是我试图修复它的事情: > 将添加到路径中。然后从cmd中,我尝试了,然后键入,但它给了我: 错误:无法找到或加载主类项目\Android原因:java.lang.ClassNotFoundExc的:项目\Android 从Android Stu

  • 我正在尝试在Windows 7上使用Cmake构建OpenCV。我选择使用Visual Studio 10编译器。 我收到以下错误: C:/程序文件 (x86)/CMake 2.8/共享/生成 2.8/模块/CMakeCXX 中的生成错误信息:37 (get_filename_component): get_filename_component调用不正确的参数数调用堆栈(最近的调用优先):CMak