本文整理汇总了Java中com.squareup.okhttp.Request.httpUrl方法的典型用法代码示例。如果您正苦于以下问题:Java Request.httpUrl方法的具体用法?Java Request.httpUrl怎么用?Java Request.httpUrl使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类com.squareup.okhttp.Request
的用法示例。
在下文中一共展示了Request.httpUrl方法的3个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Java代码示例。
示例1: authenticate
import com.squareup.okhttp.Request; //导入方法依赖的package包/类
public Request authenticate(Proxy proxy, Response response) throws IOException {
List<Challenge> challenges = response.challenges();
Request request = response.request();
HttpUrl url = request.httpUrl();
int size = challenges.size();
for (int i = 0; i < size; i++) {
Challenge challenge = (Challenge) challenges.get(i);
if ("Basic".equalsIgnoreCase(challenge.getScheme())) {
PasswordAuthentication auth = java.net.Authenticator
.requestPasswordAuthentication(url.host(), getConnectToInetAddress(proxy,
url), url.port(), url.scheme(), challenge.getRealm(), challenge
.getScheme(), url.url(), RequestorType.SERVER);
if (auth != null) {
return request.newBuilder().header("Authorization", Credentials.basic(auth
.getUserName(), new String(auth.getPassword()))).build();
}
}
}
return null;
}
示例2: authenticateProxy
import com.squareup.okhttp.Request; //导入方法依赖的package包/类
public Request authenticateProxy(Proxy proxy, Response response) throws IOException {
List<Challenge> challenges = response.challenges();
Request request = response.request();
HttpUrl url = request.httpUrl();
int size = challenges.size();
for (int i = 0; i < size; i++) {
Challenge challenge = (Challenge) challenges.get(i);
if ("Basic".equalsIgnoreCase(challenge.getScheme())) {
InetSocketAddress proxyAddress = (InetSocketAddress) proxy.address();
PasswordAuthentication auth = java.net.Authenticator
.requestPasswordAuthentication(proxyAddress.getHostName(),
getConnectToInetAddress(proxy, url), proxyAddress.getPort(), url
.scheme(), challenge.getRealm(), challenge.getScheme(),
url.url(), RequestorType.PROXY);
if (auth != null) {
return request.newBuilder().header("Proxy-Authorization", Credentials.basic
(auth.getUserName(), new String(auth.getPassword()))).build();
}
}
}
return null;
}
示例3: createTunnel
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");
}