下面列出了com.squareup.okhttp.Request#urlString ( ) 实例代码,或者点击链接到github查看源代码,也可以在右侧发表评论。
@OnBefore
public static @Nullable TraceEntry onBefore(ThreadContext context,
@BindReceiver Object call, @BindClassMeta OkHttpClientCallInvoker callInvoker) {
Request originalRequest = (Request) callInvoker.getOriginalRequest(call);
if (originalRequest == null) {
return null;
}
String method = originalRequest.method();
if (method == null) {
method = "";
} else {
method += " ";
}
String url = originalRequest.urlString();
return context.startServiceCallEntry("HTTP", method + Uris.stripQueryString(url),
MessageSupplier.create("http client request: {}{}", method, url), timerName);
}
@Override
public Response intercept(Interceptor.Chain chain) throws IOException {
Request request = chain.request();
String req = ("send request, request url: " + request.urlString() + ". request headers information: " + request.headers().toString());
req = req.replaceAll("\n", ";");
this.debug(req);
Response response = chain.proceed(request);
String resp = ("recieve response, response url: " + response.request().urlString() + ", response headers: " + response.headers().toString() + ",response body information: " + response.body().toString());
resp = resp.replaceAll("\n", ";");
this.debug(resp);
return response;
}
private static Response execute(final Request request) {
try {
return new Response(HTTP_CLIENT.newCall(request).execute());
} catch (IOException e) {
throw new UiAutomator2Exception(request.method() + " \"" + request.urlString() + "\" " +
"failed. ", e);
}
}
private Matcher<Request> hasUrl(String url) {
return new FeatureMatcher<Request, String>(equalTo(url), "Url", "Unexpected url") {
@Override protected String featureValueOf(Request actual) {
return actual.urlString();
}
};
}
public Request applyToParams(Request request) {
if (serviceName == null || region == null || accessKey == null || secretKey == null) {
return request;
}
DefaultRequest reqForSigner = new DefaultRequest(this.serviceName);
try {
reqForSigner.setEndpoint(request.uri());
reqForSigner.setHttpMethod(HttpMethodName.valueOf(request.method()));
if(!projectId.isEmpty()) {
reqForSigner.addHeader("X-Project-Id", projectId);
}
// add query string
String urlString = request.urlString();
if (urlString.contains("?")) {
String parameters = urlString.substring(urlString.indexOf("?") + 1);
Map<String, String> parametersMap = new HashMap<>();
if (!parameters.isEmpty()) {
for (String p : parameters.split("&")) {
String key = p.split("=")[0];
String value = p.split("=")[1];
parametersMap.put(key, value);
}
reqForSigner.setParameters(parametersMap);
}
}
// add body
if (request.body() != null) {
Request copy = request.newBuilder().build();
Buffer buffer = new Buffer();
copy.body().writeTo(buffer);
reqForSigner.setContent(new ByteArrayInputStream(buffer.readByteArray()));
}
Signer signer = SignerFactory.getSigner(serviceName, region);
signer.sign(reqForSigner, new BasicCredentials(this.accessKey, this.secretKey));
Request.Builder builder = request.newBuilder();
builder.headers(Headers.of(reqForSigner.getHeaders()));
return builder.build();
} catch (Exception e) {
e.printStackTrace();
}
return request;
}
public Request applyToParams(Request request) {
if (serviceName == null || region == null || accessKey == null || secretKey == null) {
return request;
}
DefaultRequest reqForSigner = new DefaultRequest(this.serviceName);
try {
reqForSigner.setEndpoint(request.uri());
reqForSigner.setHttpMethod(HttpMethodName.valueOf(request.method()));
if(!projectId.isEmpty()) {
reqForSigner.addHeader("X-Project-Id", projectId);
}
// add query string
String urlString = request.urlString();
if (urlString.contains("?")) {
String parameters = urlString.substring(urlString.indexOf("?") + 1);
Map<String, String> parametersMap = new HashMap<>();
if (!parameters.isEmpty()) {
for (String p : parameters.split("&")) {
String key = p.split("=")[0];
String value = p.split("=")[1];
parametersMap.put(key, value);
}
reqForSigner.setParameters(parametersMap);
}
}
// add body
if (request.body() != null) {
Request copy = request.newBuilder().build();
Buffer buffer = new Buffer();
copy.body().writeTo(buffer);
reqForSigner.setContent(new ByteArrayInputStream(buffer.readByteArray()));
}
Signer signer = SignerFactory.getSigner(serviceName, region);
signer.sign(reqForSigner, new BasicCredentials(this.accessKey, this.secretKey));
Request.Builder builder = request.newBuilder();
builder.headers(Headers.of(reqForSigner.getHeaders()));
return builder.build();
} catch (Exception e) {
e.printStackTrace();
}
return request;
}
@Override
public String getUrl(Request request) {
return request.urlString();
}