POST 요청에서 쿼리 매개 변수로 JSON 배열을 제공해야하는 API를 처리하고 있습니다. 견적은 url에 있어야하지만 OkHttp와 HttpURL은 계속이 URL을 %22
으로 변환합니다. API는이를 인식하지 못하고 오류 코드를 반환합니다. Okhttp가 요청시 견적을 보존하도록하려면 어떻게해야합니까? 나는이 같은 외모를 처리하고 코드 :OkHttp를 사용하여 큰 따옴표를 보존하는 방법
public static void post(String url, String[][] requestParams, Callback callback) {
HttpUrl httpUrl = addParamsToURL(getAbsoluteUrl(url), requestParams);
Request request = new Request.Builder()
.url(httpUrl)
.addHeader("app", Prefs.getString(Constants.HEADER_APP, null))
.addHeader("authoToken", Prefs.getString(Constants.HEADER_AUTH_TOKEN, null))
.post(RequestBody.create(MediaType.parse("application/json"), ""))
.build();
okHttpClient.newCall(request).enqueue(callback);
}
private static HttpUrl addParamsToURL(String url, String[][] requestParams) {
HttpUrl httpUrl = HttpUrl.parse(url);
HttpUrl.Builder urlBuilder = httpUrl.newBuilder();
for(int i = 0, size = requestParams.length; i < size; i++) {
urlBuilder.addEncodedQueryParameter(requestParams[i][0], requestParams[i][1]);
}
return urlBuilder.build();
}
나는 요청이 https://www.baseurl.com/path?queryName=["[email protected]"]
처럼 보이도록하기 위해 간다하지만 https://www.baseurl.com/path/?queryName=[%[email protected]%22]
그것은 업 상기 오타 문제 _not_ 이중 인용이라고 판명되었지만 선. 그러나 나는 서버가 제대로 설정되지 않은 많은 사람들이 문제를 알고 있으므로 대답을 선택하고 있습니다. – drawinfinity