这是我的班级,在那里调用改造。
public class Prelist_fragment extends ListActivity {
String API = "http://nisani.net/nisani hoarding/";
String tag;
Datum datum;
private ArrayList<String> stores = new ArrayList<String>();
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
Log.e(tag, "in oncreate of prelist");
retro();
}
void retro(){
Log.e(tag, "inside retro");
RestAdapter restAdapter = new RestAdapter.Builder()
.setEndpoint(API).build(); //create an adapter for retrofit with base url
gitapi git = restAdapter.create(gitapi.class);
git.getStores("hij",new Callback<PreStoreResponse>() {
@Override
public void success(PreStoreResponse preStoreResponse, Response response) {
stores.add(datum.getStore());
TextView tView = new TextView(Prelist_fragment.this);
getListView().addHeaderView(tView);
setListAdapter(new ArrayAdapter<String>(Prelist_fragment.this,
R.layout.activity_prelist_fragment,stores));
getListView().setTextFilterEnabled(true);
}
@Override
public void failure(RetrofitError error) {
Log.e(tag, "inside retro error"+error.getUrl()+" "+error.getMessage());
if (error.isNetworkError()) {
Log.e(tag,"network error"); // Use another code if you'd prefer
}
}
});
}
这是我的界面。
public interface gitapi {
/* GET LIST*/
@GET("/pre_report.php") //a function in your api to get all the list
public void getStores(@Query("roll")String a,Callback<PreStoreResponse> response);
}
当我尝试这个时,它显示404未找到。网址是正确的,我查了一下。如果没有在成功的情况下进行改造就会发生反应。
答案 0 :(得分:3)
我的第一个猜测是由于端点URL中的空间而导致Retrofit失败。
在浏览器中输入时,浏览器会自动将该空间转换为&#39;%20&#39;然后它会理解。我不确定Retrofit能否做到这一点。改造可能只是删除该空间,将原始网址转换为&#34; http://nisani.net/nisanihoarding/&#34;,这显然会产生404错误。
尝试将您的终端网址更改为:
http://nisani.net/nisani%20hoarding/