private WsResponse get(GetRequest getRequest) { HttpUrl.Builder urlBuilder = prepareUrlBuilder(getRequest); completeUrlQueryParameters(getRequest, urlBuilder); Request.Builder okRequestBuilder = prepareOkRequestBuilder(getRequest, urlBuilder).get(); return new OkHttpResponse(doCall(prepareOkHttpClient(okHttpClient, getRequest), okRequestBuilder.build())); }
/** * Get body content as a String. This response will be automatically closed. */ @Override public String content() { ResponseBody body = okResponse.body(); try { return body.string(); } catch (IOException e) { throw fail(e); } finally { body.close(); } }
private RuntimeException fail(Exception e) { throw new IllegalStateException("Fail to read response of " + requestUrl(), e); }
private WsResponse post(PostRequest postRequest) { HttpUrl.Builder urlBuilder = prepareUrlBuilder(postRequest); RequestBody body; Map<String, PostRequest.Part> parts = postRequest.getParts(); if (parts.isEmpty()) { // parameters are defined in the body (application/x-www-form-urlencoded) FormBody.Builder formBody = new FormBody.Builder(); postRequest.getParameters().getKeys() .forEach(key -> postRequest.getParameters().getValues(key) .forEach(value -> formBody.add(key, value))); body = formBody.build(); } else { // parameters are defined in the URL (as GET) completeUrlQueryParameters(postRequest, urlBuilder); MultipartBody.Builder bodyBuilder = new MultipartBody.Builder().setType(MultipartBody.FORM); parts.entrySet().forEach(param -> { PostRequest.Part part = param.getValue(); bodyBuilder.addFormDataPart( param.getKey(), part.getFile().getName(), RequestBody.create(MediaType.parse(part.getMediaType()), part.getFile())); }); body = bodyBuilder.build(); } Request.Builder okRequestBuilder = prepareOkRequestBuilder(postRequest, urlBuilder).post(body); Response response = doCall(prepareOkHttpClient(noRedirectOkHttpClient, postRequest), okRequestBuilder.build()); response = checkRedirect(response, postRequest); return new OkHttpResponse(response); }
/** * Get body content as a String. This response will be automatically closed. */ @Override public String content() { ResponseBody body = okResponse.body(); try { return body.string(); } catch (IOException e) { throw fail(e); } finally { body.close(); } }
private RuntimeException fail(Exception e) { throw new IllegalStateException("Fail to read response of " + requestUrl(), e); }
private WsResponse get(GetRequest getRequest) { HttpUrl.Builder urlBuilder = prepareUrlBuilder(getRequest); completeUrlQueryParameters(getRequest, urlBuilder); Request.Builder okRequestBuilder = prepareOkRequestBuilder(getRequest, urlBuilder).get(); return new OkHttpResponse(doCall(prepareOkHttpClient(okHttpClient, getRequest), okRequestBuilder.build())); }
private WsResponse post(PostRequest postRequest) { HttpUrl.Builder urlBuilder = prepareUrlBuilder(postRequest); RequestBody body; Map<String, PostRequest.Part> parts = postRequest.getParts(); if (parts.isEmpty()) { // parameters are defined in the body (application/x-www-form-urlencoded) FormBody.Builder formBody = new FormBody.Builder(); postRequest.getParameters().getKeys() .forEach(key -> postRequest.getParameters().getValues(key) .forEach(value -> formBody.add(key, value))); body = formBody.build(); } else { // parameters are defined in the URL (as GET) completeUrlQueryParameters(postRequest, urlBuilder); MultipartBody.Builder bodyBuilder = new MultipartBody.Builder().setType(MultipartBody.FORM); parts.entrySet().forEach(param -> { PostRequest.Part part = param.getValue(); bodyBuilder.addFormDataPart( param.getKey(), part.getFile().getName(), RequestBody.create(MediaType.parse(part.getMediaType()), part.getFile())); }); body = bodyBuilder.build(); } Request.Builder okRequestBuilder = prepareOkRequestBuilder(postRequest, urlBuilder).post(body); Response response = doCall(prepareOkHttpClient(noRedirectOkHttpClient, postRequest), okRequestBuilder.build()); response = checkRedirect(response, postRequest); return new OkHttpResponse(response); }