java request 完整url_Java Request.httpUrl方法代码示例

import com.squareup.okhttp.Request; //导入方法依赖的package包/类

private void createTunnel(int readTimeout, int writeTimeout) throws IOException {

Request tunnelRequest = createTunnelRequest();

HttpUrl url = tunnelRequest.httpUrl();

String requestLine = "CONNECT " + url.host() + ":" + url.port() + " HTTP/1.1";

do {

Http1xStream tunnelConnection = new Http1xStream(null, this.source, this.sink);

this.source.timeout().timeout((long) readTimeout, TimeUnit.MILLISECONDS);

this.sink.timeout().timeout((long) writeTimeout, TimeUnit.MILLISECONDS);

tunnelConnection.writeRequest(tunnelRequest.headers(), requestLine);

tunnelConnection.finishRequest();

Response response = tunnelConnection.readResponse().request(tunnelRequest).build();

long contentLength = OkHeaders.contentLength(response);

if (contentLength == -1) {

contentLength = 0;

}

Source body = tunnelConnection.newFixedLengthSource(contentLength);

Util.skipAll(body, ActivityChooserViewAdapter.MAX_ACTIVITY_COUNT_UNLIMITED, TimeUnit

.MILLISECONDS);

body.close();

switch (response.code()) {

case 200:

if (!this.source.buffer().exhausted() || !this.sink.buffer().exhausted()) {

throw new IOException("TLS tunnel buffered too many bytes!");

}

return;

case 407:

tunnelRequest = OkHeaders.processAuthHeader(this.route.getAddress()

.getAuthenticator(), response, this.route.getProxy());

break;

default:

throw new IOException("Unexpected response code for CONNECT: " + response

.code());

}

} while (tunnelRequest != null);

throw new IOException("Failed to authenticate with proxy");

}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值