java – 构建请求时出现Android Retrofit错误
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了java – 构建请求时出现Android Retrofit错误,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含2219字,纯文字阅读大概需要4分钟。
内容图文
![java – 构建请求时出现Android Retrofit错误](/upload/InfoBanner/zyjiaocheng/772/8f3d212112904550b58dddd8cf901aac.jpg)
当我尝试使用Retrofit执行RESTfull服务时,我想知道是否有人能告诉我为什么我收到错误的请求错误
错误:HTTP / 1.1 400错误请求
这是我的两个班级:
RetrofitInterface:
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
}
});
}
}
结果总是失败.我原本以为问题是Retrofit内置的gson转换器无法将响应转换为stock对象,因为我只收到了“Retrofit.retrofiterror”响应.但是’Bad Request’响应让我觉得问题在于api的URL.
这是我想要的回复网址:
http://query.yahooapis.com/v1/public/yql?q=select * from yahoo.finance.quotes where symbol in(“AIB.IR”)
&安培;格式= JSON&安培;诊断=真安培; ENV = HTTP://datatables.org/alltables.env\u0026amp;回调=
谁能告诉我,如果我在我的代码中正确构建这个?一个可能的问题是我在查询中逃避了我的引用.也许这会导致问题?
以防我发布我的Stock对象.我是在在线POJO转换器的帮助下写的
public class Stock {
@Expose
private Query query;
public Query getQuery() {
return query;
}
public void setQuery(Query query) {
this.query = query;
}
}
任何有关这方面的帮助将不胜感激.
解决方法:
您尝试使用一个查询字符串参数而不是多个.这不起作用,请参考this question.
此外,无需编码查询内容,Retrofit将自动执行此操作(请参阅docs):
Parameter values are URL encoded by default. Specify encodeValue=false to change this behavior.
内容总结
以上是互联网集市为您收集整理的java – 构建请求时出现Android Retrofit错误全部内容,希望文章能够帮你解决java – 构建请求时出现Android Retrofit错误所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。