导航:首页 > 网络设置 > ok网怎么设置网络

ok网怎么设置网络

发布时间:2024-10-05 22:53:06

Ⅰ okhttp请求网络怎么设置请求超时

OkHttp 处理了很多网络疑难杂症:会从很多常用的连接问题中自动恢复。如果您的服务器配置了多个IP地址,当第一个IP连接失败的时候,OkHttp会自动尝试下一个IP。OkHttp还处理了代理服务器问题和SSL握手失败问题。

OkHttp是一个相对成熟的解决方案,据说Android4.4的源码中可以看到HttpURLConnection已经替换成OkHttp实现了。所以我们更有理由相信OkHttp的强大。

1、HTTP请求方法
同步GET请求
private final OkHttpClient client = new OkHttpClient();

public void run() throws Exception {
Request request = new Request.Builder()
.url("http://publicobject.com/helloworld.txt")
.build();
Response response = client.newCall(request).execute();
if (!response.isSuccessful())
throw new IOException("Unexpected code " + response);
Headers responseHeaders = response.headers();
for (int i = 0; i < responseHeaders.size(); i++) {
System.out.println(responseHeaders.name(i) + ": " + responseHeaders.value(i));
}
System.out.println(response.body().string());
}

Response类的string()方法会把文档的所有内容加载到内存,适用于小文档,对应大于1M的文档,应 使用流()的方式获取。
response.body().byteStream()

异步GET请求
private final OkHttpClient client = new OkHttpClient();

public void run() throws Exception {
Request request = new Request.Builder()
.url("http://publicobject.com/helloworld.txt")
.build();
client.newCall(request).enqueue(new Callback() {
@Override
public void onFailure(Request request, IOException e) {
e.printStackTrace();
}

@Override
public void onResponse(Response response) throws IOException {
if (!response.isSuccessful()) {
throw new IOException("Unexpected code " + response);
}
Headers responseHeaders = response.headers();
for (int i = 0; i < responseHeaders.size(); i++) {
System.out.println(responseHeaders.name(i) + ": " + responseHeaders.value(i));
}

System.out.println(response.body().string());
}
});
}

读取响应会阻塞当前线程,所以发起请求是在主线程,回调的内容在非主线程中。

POST方式提交字符串
private static final MediaType MEDIA_TYPE_MARKDOWN
= MediaType.parse("text/x-markdown; charset=utf-8");

private final OkHttpClient client = new OkHttpClient();

public void run() throws Exception {
String postBody = ""
+ "Releases\n"
+ "--------\n"
+ "\n"
+ " * _1.0_ May 6, 2013\n"
+ " * _1.1_ June 15, 2013\n"
+ " * _1.2_ August 11, 2013\n";

Request request = new Request.Builder()
.url("https://api.github.com/markdown/raw")
.post(RequestBody.create(MEDIA_TYPE_MARKDOWN, postBody))
.build();

Response response = client.newCall(request).execute();
if (!response.isSuccessful())
throw new IOException("Unexpected code " + response);

System.out.println(response.body().string());
}

因为整个请求体都在内存中,应避免提交1M以上的文件。

POST方式提交流
private final OkHttpClient client = new OkHttpClient();

public void run() throws Exception {
RequestBody requestBody = new RequestBody() {
@Override
public MediaType contentType() {
return MEDIA_TYPE_MARKDOWN;
}

@Override
public void writeTo(BufferedSink sink) throws IOException {
sink.writeUtf8("Numbers\n");
sink.writeUtf8("-------\n");
for (int i = 2; i <= 997; i++) {
sink.writeUtf8(String.format(" * %s = %s\n", i, factor(i)));
}
}

private String factor(int n) {
for (int i = 2; i < n; i++) {
int x = n / i;
if (x * i == n) return factor(x) + " × " + i;
}
return Integer.toString(n);
}
};

Request request = new Request.Builder()
.url("https://api.github.com/markdown/raw")
.post(requestBody)
.build();

Response response = client.newCall(request).execute();
if (!response.isSuccessful())
throw new IOException("Unexpected code " + response);

System.out.println(response.body().string());
}

使用Okio框架以流的形式将内容写入,这种方式不会出现内存溢出问题。
POST方式提交文件
public static final MediaType MEDIA_TYPE_MARKDOWN
= MediaType.parse("text/x-markdown; charset=utf-8");

private final OkHttpClient client = new OkHttpClient();

public void run() throws Exception {
File file = new File("README.md");

Request request = new Request.Builder()
.url("https://api.github.com/markdown/raw")
.post(RequestBody.create(MEDIA_TYPE_MARKDOWN, file))
.build();

Response response = client.newCall(request).execute();
if (!response.isSuccessful())
throw new IOException("Unexpected code " + response);

System.out.println(response.body().string());
}

POST方式提交表单
private final OkHttpClient client = new OkHttpClient();

public void run() throws Exception {
RequestBody formBody = new FormEncodingBuilder()
.add("search", "Jurassic Park")
.build();
Request request = new Request.Builder()
.url("https://en.wikipedia.org/w/index.php")
.post(formBody)
.build();

Response response = client.newCall(request).execute();
if (!response.isSuccessful())
throw new IOException("Unexpected code " + response);

System.out.println(response.body().string());
}

表单的每个Names-Values都进行了URL编码。如果服务器端接口未进行URL编码,可定制个 FormBuilder。
文件上传(兼容html文件上传)
private static final String IMGUR_CLIENT_ID = "...";
private static final MediaType MEDIA_TYPE_PNG = MediaType.parse("image/png");

private final OkHttpClient client = new OkHttpClient();

public void run() throws Exception {
// Use the imgur image upload API as documented at https://api.imgur.com/endpoints/image
RequestBody requestBody = new MultipartBuilder()
.type(MultipartBuilder.FORM)
.addPart(
Headers.of("Content-Disposition", "form-data; name=\"title\""),
RequestBody.create(null, "Square Logo"))
.addPart(
Headers.of("Content-Disposition", "form-data; name=\"image\""),
RequestBody.create(MEDIA_TYPE_PNG, new File("website/static/logo-square.png")))
.build();

Request request = new Request.Builder()
.header("Authorization", "Client-ID " + IMGUR_CLIENT_ID)
.url("https://api.imgur.com/3/image")
.post(requestBody)
.build();

Response response = client.newCall(request).execute();
if (!response.isSuccessful())
throw new IOException("Unexpected code " + response);
System.out.println(response.body().string());
}

网络连接显示OK但是上不了网是怎么回事啊

在网络连接菜单中,查找菜单“高级”点击“可选网络组件”。根据提示重新安装,试试。

Ⅲ 无限路由器连接设置好后,本地连接显示ok,可是WAN口状态IP地址全是0,无法上网,如何解决

首先检查一下每个端口是否都插好了,不行的话,有可能的就把网线对调一下,再试试,能通信就出现在网线上,可以压线没压好或者松动,中间断了。一家家用路由器IP自动获取就可以了,没有必要自己去设置静态IP,比较麻烦,IP不能设置为192.168.1.1,这个是你路由器下面连接的终端的网关来的,按你后面说问题很大可能是出现在网线上面。

阅读全文

与ok网怎么设置网络相关的资料

热点内容
网络安全重点是什么 浏览:963
网络直播怎么拍照 浏览:889
人身财产网络安全论文 浏览:376
网络机顶盒以太网连接 浏览:512
有网络无线监控能用吗 浏览:622
网易云的网络用语都有哪些 浏览:342
小米手机怎么样有网络信号 浏览:980
当前网络状态无法连接 浏览:795
普陀网络营销产品设计性价比 浏览:95
中国的无线网络是怎么连接的 浏览:385
网络用词二维码什么意思 浏览:87
ok网怎么设置网络 浏览:436
如何诊断移动网络 浏览:568
外国移动网络环境 浏览:273
网络层功能由什么实现 浏览:172
移动网络总是不稳定是什么原因 浏览:704
破解无线网络字典 浏览:412
网络流量限制控制软件 浏览:721
网络线和液晶电视怎么连接 浏览:21
萤石1w的网络ip是多少 浏览:735

友情链接