Tag: okhttp3

如何在MainActivity.java中创建简单的HTTP请求? (Android Studio)

我正在使用Android Studio,并且我花了几个小时尝试在我的MainActivity.java文件中执行一个简单的HTTP请求,并尝试了多种方式,并且看到了很多关于这个主题的网页,但却无法弄清楚。 当我尝试OkHttp时,我收到一条关于无法在主线程上执行此操作的错误。 现在我试着这样做: public static String getUrlContent(String sUrl) throws Exception { URL url = new URL(sUrl); HttpURLConnection connection = (HttpURLConnection) url.openConnection(); connection.setRequestMethod(“GET”); connection.setDoOutput(true); connection.setConnectTimeout(5000); connection.setReadTimeout(5000); connection.connect(); BufferedReader rd = new BufferedReader(new InputStreamReader(connection.getInputStream())); String content = “”, line; while ((line = rd.readLine()) != null) { content += line + “\n”; } return content; } 我将该方法直接放在MainActivity.java中,我的click事件从MainActivity.java中的另一个方法执行它: […]

OkHttpClient无法取消Call by tag

我最近升级到OkHttp3 ,并注意到您无法再直接从客户端取消标记。 这必须由应用程序现在处理。 这里以CHANGELOG为例 : 取消批量呼叫现在是应用程序的责任。 取消按标记调用的API已被删除,并替换为更通用的机制。 调度程序现在通过其runningCalls()和queuedCalls()方法公开所有正在进行的调用。 您可以编写通过标记,主机或其他任何方式选择调用的代码,并对不再需要的调用Call.cancel()。 我用我的简单实用工具方法自行回答这篇文章,以取消正在运行或排队的Call by tag。

在OkHttp中使用请求正文获取请求

我正在尝试将OkHttp 3.6.0与Elasticsearch一起使用,并且我坚持向Elasticsearch Multi GET API发送请求。 它需要向请求主体发送HTTP GET请求。 不幸的是,如果我自己尝试构建请求,OkHttp不支持开箱即用并抛出exception。 RequestBody body = RequestBody.create(“text/plain”, “test”); // No RequestBody supported Request request = new Request.Builder() .url(“http://example.com”) .get() .build(); // Throws: java.lang.IllegalArgumentException: method GET must not have a request body. Request request = new Request.Builder() .url(“http://example.com”) .method(“GET”, requestBody) .build(); 有没有机会在OkHttp中使用请求主体建立GET请求? 相关问题: 带请求正文的HTTP GET 如何在没有请求主体的情况下发出OKHTTP发布请求? 带有请求正文的Elasticsearch GET请求

Okhttp android Websocket和Jetty Server连接SSL

我有下面给出的okhttpclient android websocket和jetty独立服务器。 我必须为android客户端和jetty服务器之间的通信启用强大的安全性。 我在客户端面临问题,如下所示。 服务器端 package com.wss.okhttp; import java.io.FileInputStream; import java.io.IOException; import java.io.InputStream; import java.security.KeyStore; import java.security.KeyStoreException; import java.security.NoSuchAlgorithmException; import java.security.cert.Certificate; import java.security.cert.CertificateException; import java.security.cert.CertificateFactory; import javax.servlet.ServletException; import javax.websocket.DeploymentException; import javax.websocket.server.ServerContainer; import org.eclipse.jetty.server.Server; import org.eclipse.jetty.server.ServerConnector; import org.eclipse.jetty.server.SslConnectionFactory; import org.eclipse.jetty.servlet.ServletContextHandler; import org.eclipse.jetty.util.ssl.SslContextFactory; import org.eclipse.jetty.websocket.jsr356.server.deploy.WebSocketServerContainerInitializer; public class JettySSLServer { public static void main(String[] args) throws IOException […]

OkHTTPClient代理validation如何?

问题:如何向OkHTTP添加授权代理。 我知道OkHTTP的构建器确实支持代理,尽管我很难设置代理 。 /** * Given a Url and a base64 encoded password return the contents of a website. * @param urlString * @param password * @return JSON */ public String getURLJson(String urlString, String password) { OkHttpClient client = new OkHttpClient.Builder() .connectTimeout(60, TimeUnit.SECONDS) .writeTimeout(60, TimeUnit.SECONDS) .readTimeout(60, TimeUnit.SECONDS) .build(); Request request = new Request.Builder() .url(urlString) .get() […]