我试图通过Android应用程序中的改造连接到休息服务.我得到了回复.但是当服务有一些错误响应时,会发生转换异常,现在我想根据响应主体做一些操作.但我得到的响应正文为NULL.但改装日志有一条错误消息.为什么会这样呢?
D/Reftofit log(24856): OkHttp-Received-Millis: 1397527055676
D/Reftofit log(24856): OkHttp-Response-Source: NETWORK 200
D/Reftofit log(24856): OkHttp-Sent-Millis: 1397527055492
D/Reftofit log(24856): Server: Apache/2.2.22 (Ubuntu)
D/Reftofit log(24856): X-Powered-By: PHP/5.3.10-1ubuntu3.10
D/Reftofit log(24856): {"result":"Invalid Token ID"}
Run Code Online (Sandbox Code Playgroud)
码:
public void failure(RetrofitError retrofitError) {
String response = null;
TokenError tokenError = (TokenError) retrofitError.getBodyAs(TokenError.class);
response = tokenError.getErrorDetails();
Log.e(TAG, response);
if (response != null && response.contains("Invalid Token ID")) {
GroupDataProvider.getInstance().onFailure();
}
}
Run Code Online (Sandbox Code Playgroud)
我在这里得到tokenError了null.我不知道为什么?我是否需要使用rest适配器设置某些内容,以便将响应传递给改进的错误对象.
嗨,我想模块化排球请求,所以我不会将活动演示代码与排球请求混在一起.我看到的所有样本,凌空请求都被放置 - 例如 - 来自活动按钮的OnClick事件.
我的意思是这段代码(取自差异源代码):
// prepare the Request
JsonObjectRequest getRequest = new JsonObjectRequest(Request.Method.GET, url, null,
new Response.Listener<JSONObject>()
{
@Override
public void onResponse(JSONObject response) {
// display response
Log.d("Response", response.toString());
}
},
new Response.ErrorListener()
{
@Override
public void onErrorResponse(VolleyError error) {
Log.d("Error.Response", response);
}
}
);
// add it to the RequestQueue
queue.add(getRequest);
Run Code Online (Sandbox Code Playgroud)
我的观点是如何将所有请求代码发送到另一个类,然后实例化该类并调用makeRequest.我已经尝试了这个,但它失败了.我不知道它是否与Context相关但却失败了......
我这样做了:
public void onClick(View v) {
try{
Utils varRequest = new Utils(getApplicationContext());
String url = "https://ajax.googleapis.com/ajax/services/search/web?v=1.0&q=";
varRequest.makeRequest(url);
mitexto.setText(varRequest.miError);
}
catch(Exception excepcion) {
System.out.println(excepcion.toString());
}
} …Run Code Online (Sandbox Code Playgroud) 我在 Android 上使用 Retrofit2 和 OkHttp 进行 HTTP 请求。这里我正在做一个带有文档上传的 POST 请求。我遇到了以下错误:
D/OkHttp: <-- 500 Server Error http://api.drivewealth.io/v1/documents (4289ms)
D/OkHttp: Date: Tue, 11 Apr 2017 03:29:48 GMT
D/OkHttp: Cache-Control: must-revalidate,no-cache,no-store
D/OkHttp: Content-Type: text/html; charset=ISO-8859-1
D/OkHttp: Server: Jetty(9.2.17.v20160517)
D/OkHttp: Content-Length: 9323
D/OkHttp: Connection: keep-alive
D/OkHttp: <html>
D/OkHttp: <head>
D/OkHttp: <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/>
D/OkHttp: <title>Error 500 Server Error</title>
D/OkHttp: </head>
D/OkHttp: <body><h2>HTTP ERROR 500</h2>
D/OkHttp: <p>Problem accessing /v1/documents. Reason:
D/OkHttp: <pre> Server Error</pre></p><h3>Caused by:</h3><pre>org.apache.cxf.interceptor.Fault: Couldn't determine the boundary from the message!
D/OkHttp: …Run Code Online (Sandbox Code Playgroud)