我想从以下Api得到回应:
https://api.github.com/users/username
但我不知道如何获得响应,String以便我可以使用String解析并得到JSONObject.
使用的改装版本:
改造:2.0.0-β1
我一直试过这个:
public interface GitHubService {
@GET("/users/{user}")
public String listRepos(@Path("user") String user,Callback<String> callback);
}
Run Code Online (Sandbox Code Playgroud)
检索:
GitHubService service = retrofit.create(GitHubService.class);
service.listRepos("username", new Callback<String>() {
@Override
public void onResponse(Response response) {
System.out.println(response.toString());
}
@Override
public void onFailure(Throwable t) {
}
});
Run Code Online (Sandbox Code Playgroud)
例外:
Caused by: java.lang.IllegalArgumentException: Could not locate call adapter for class java.lang.String. Tried:
* retrofit.ExecutorCallAdapterFactory
at retrofit.Utils.resolveCallAdapter(Utils.java:67)
at retrofit.MethodHandler.createCallAdapter(MethodHandler.java:49)
Run Code Online (Sandbox Code Playgroud)
任何帮助将非常感激.
我正在测试Retrofit与Volley进行比较,我正在努力从我的请求中获得响应.例如,我做这样的事情:
RestAdapter restAdapter = new RestAdapter.Builder()
.setEndpoint("http://localhost:8080")
.build();
MyService service = restAdapter.create(MyService.class);
service.getToto("toto", new Callback<Toto>() {
@Override
public void success(Toto toto, Response response) {
// Try to get response body
BufferedReader reader = null;
StringBuilder sb = new StringBuilder();
try {
reader = new BufferedReader(
new InputStreamReader(response.getBody().in()));
String line;
try {
while ((line = reader.readLine()) != null) {
sb.append(line);
}
} catch (IOException e) {
e.printStackTrace();
}
} catch (IOException e) {
e.printStackTrace();
}
String result = sb.toString();
}
@Override …Run Code Online (Sandbox Code Playgroud) 我可以将json对象下载为String而无需在Android设备上使用Retrofit进行解析吗?
当我尝试直接接近时
@GET("/api.php?action=bundle")
public void getWholeScheduleString(Callback<String> response);
Run Code Online (Sandbox Code Playgroud)
我收到了错误:
"com.google.gson.JsonSyntaxException: java.lang.IllegalStateException:
Expected a string but was BEGIN_OBJECT at line 1 column 2 path $"
Run Code Online (Sandbox Code Playgroud)