标签: okhttp

改造:失败时状态码返回空指针.

我正在使用Retrofit进行后端通信:如果状态代码不是200,那么回调调用失败方法.但我想在失败方法中获取状态代码以进一步调整代码

        @Override
        public void failure(RetrofitError retrofitError) {

                Logger.e("ERROR Status:", retrofitError.getResponse().getStatus() + "");

            }
        }
Run Code Online (Sandbox Code Playgroud)

但上面的代码总是给出一个空指针异常.如何在失败时获取标题的状态代码.

请帮忙.

提前致谢.

android retrofit okhttp

3
推荐指数
1
解决办法
1661
查看次数

带有本地局域网 IP 的 Android 自签名证书

我正在创建一个应用程序来控制商店,我正在尝试通过开放的 wifi 使用本地服务器 (192.168.0.56)。

有没有办法让我的应用程序使用 HTTPS 和自签名证书连接到我的服务器?

我正在使用改造,如果它的问题。

我在互联网上尝试了很多教程但没有成功,它总是返回此消息

Hostname '192.168.0.56' was not verified
Run Code Online (Sandbox Code Playgroud)

创建证书我使用了这个代码:

openssl genrsa -out san_server.key 2048
openssl req -new -key san_server.key -out san_server.csr -config openssl.cnf -subj "/C=BR/ST=Mato Grosso do Sul/L=Iguatemi/O=Talski/CN=192.168.0.56"
openssl req -text -noout -in san_server.csr

openssl genrsa -out rootCA.key 4096
openssl req -x509 -new -nodes -key rootCA.key -days 3650 -out rootCA.pem -config openssl.cnf -subj "/C=BR/ST=Mato Grosso do Sul/L=Iguatemi/O=Talski/CN=192.168.0.56"
openssl x509 -req -in san_server.csr -CA rootCA.pem -CAkey rootCA.key -CAcreateserial -out san_server-rootCA.crt -days 3649
openssl x509 -in …
Run Code Online (Sandbox Code Playgroud)

ssl android retrofit okhttp

3
推荐指数
1
解决办法
1267
查看次数

如何使用 okhttp 添加适当的内容长度标头?

我正在使用 okhttp 向我的服务器发送请求。问题是 okhttp 发送的请求缺少内容长度标头 - 我可以手动设置标头:

Request.builder
....
.addHeader("content-length","some-value")
Run Code Online (Sandbox Code Playgroud)

但我无法获得适当的价值放在那里。如果我尝试像这样测量我的请求正文:

int request_length = body.length();
builder.addHeader("content-length", String.valueOf(request_length)); 
Run Code Online (Sandbox Code Playgroud)

然后 okhttp 根本不添加标题。

是否有将内容长度标头添加到请求的正确方法(最好是“默认”添加标头的方法)?

java android http content-length okhttp

3
推荐指数
1
解决办法
2157
查看次数

将身份验证令牌作为标头添加到 okhttp

我有下面的方法来进行 GET 调用。我需要给它添加一个header,以便通过header将userToken传递给服务器。我怎么做?

public static String getJsonStringFromHttpGet(String url) {
    OkHttpClient client = new OkHttpClient();
    Request request = new Request.Builder()
            .url(url)
            .build();
    try {
        Response responses = client.newCall(request).execute();
        return responses.body().string();
    } catch (IOException e) {
        Timber.e(e, "response exception:");
        return null;
    }
}
Run Code Online (Sandbox Code Playgroud)

android http-headers okhttp

3
推荐指数
1
解决办法
5958
查看次数

OKHttp - 找不到setSslSocketFactory

我正在使用OkHttp 3.4.0-RC1.我正在尝试编写一个通过TLSv1.2连接Android 4.2.2/API 17设备的Web服务.我在OKHttp的这篇文章Android Enable TLSv1.2的底部看到了答案,但显然方法setSslSocketFactory不再存在.我也没有在OKHttp的Https文档中看到任何内容.谢谢!

android okhttp okhttp3

3
推荐指数
1
解决办法
2949
查看次数

如何使用 OkHttp 启用证书固定

如何使用 OkHttp 为我的 Android/Java 应用程序启用证书固定?

certificate ssl-certificate okhttp okhttp3

3
推荐指数
1
解决办法
2362
查看次数

如何使用OKHTTP发出并发网络请求?

我正在寻找使用OKHTTP库进行并发网络请求的最佳实践。

基本上,这就是我想要做的:

我想编写一种方法,使N个并发网络请求发送到不同的URL,并且仅在所有N个请求都返回后才返回。

我考虑过手动编写Threads和Runnables之类的方法来创建一组请求池,但是我想知道是否存在某种更简单的方法来执行此操作。所以我的问题是:

  1. OKHTTP是否以某种方式原生支持并发请求API?
  2. 如果没有,实现此目标的最佳方法是什么?

java concurrency multithreading android okhttp

3
推荐指数
1
解决办法
3730
查看次数

架构使网络调用和解析JSON响应

我正在开发一个新的Android应用程序,我想适当地组织所有组件-网络调用类,JSON解析类等。我正在使用Okhttp进行网络通话;经过大量研究,我能够像这样构造我的代码:

我的NetworkUtil类:

public class NetworkUtil {

public static void getData(String url, final OkHttpListener listener){
    OkHttpClient client = new OkHttpClient();
    // GET request
    Request request = new Request.Builder()
            .url(url)
            .build();
    client.newCall(request).enqueue(new Callback() {
        @Override
        public void onFailure(Request request, IOException e) {
            listener.onFailure(request, e);
        }
        @Override
        public void onResponse(Response response) throws IOException {
            listener.onResponse(response);
        }
    });
}
Run Code Online (Sandbox Code Playgroud)

我的网络回调接口:

public interface OkHttpListener {
void onFailure(Request request, IOException e);
void onResponse(Response response) throws IOException;
}
Run Code Online (Sandbox Code Playgroud)

这是我的Activity类:

OkHttpListener listener = new OkHttpListener() {
        @Override
        public …
Run Code Online (Sandbox Code Playgroud)

android json okhttp android-mvp

3
推荐指数
1
解决办法
586
查看次数

HttpLoggingInterceptor无法登录android版本

我的应用程式发布版本中的places API出现问题,如果我能看到来自的日志,它将对我有很大帮助OkHttpClient。我要添加一个HttpLoggingInterceptor,但只能看到调试版本的日志。我如何在发行版本中看到它们?

android okhttp

3
推荐指数
1
解决办法
523
查看次数

如何在okhttp3中设置连接超时?

如何在此代码中设置超时?

okhttp3.OkHttpClient client = new okhttp3.OkHttpClient();
okhttp3.Request request = new okhttp3.Request.Builder()
    .url(url)
    .get()
    .build();
Call call = client.newCall(request);
call.enqueue(callback);
Run Code Online (Sandbox Code Playgroud)

谢谢。

android okhttp

3
推荐指数
1
解决办法
5879
查看次数