use of com.parse.http.ParseHttpRequest in project Parse-SDK-Android by ParsePlatform.
the class ParseOkHttpClientTest method testGetOkHttpRequest.
@Test
public void testGetOkHttpRequest() throws IOException {
Map<String, String> headers = new HashMap<>();
String headerName = "name";
String headerValue = "value";
headers.put(headerName, headerValue);
String url = "http://www.parse.com/";
String content = "test";
int contentLength = content.length();
String contentType = "application/json";
ParseHttpRequest parseRequest = new ParseHttpRequest.Builder().setUrl(url).setMethod(ParseHttpRequest.Method.POST).setBody(new ParseByteArrayHttpBody(content, contentType)).setHeaders(headers).build();
ParseOkHttpClient parseClient = new ParseOkHttpClient(10000, null);
Request okHttpRequest = parseClient.getRequest(parseRequest);
// Verify method
assertEquals(ParseHttpRequest.Method.POST.toString(), okHttpRequest.method());
// Verify URL
assertEquals(url, okHttpRequest.url().toString());
// Verify Headers
assertEquals(1, okHttpRequest.headers(headerName).size());
assertEquals(headerValue, okHttpRequest.headers(headerName).get(0));
// Verify Body
RequestBody okHttpBody = okHttpRequest.body();
assertEquals(contentLength, okHttpBody.contentLength());
assertEquals(contentType, okHttpBody.contentType().toString());
// Can not read parseRequest body to compare since it has been read during
// creating okHttpRequest
Buffer buffer = new Buffer();
okHttpBody.writeTo(buffer);
ByteArrayOutputStream output = new ByteArrayOutputStream();
buffer.copyTo(output);
assertArrayEquals(content.getBytes(), output.toByteArray());
}
use of com.parse.http.ParseHttpRequest in project Parse-SDK-Android by ParsePlatform.
the class ParseOkHttpClientTest method testGetOkHttpRequestType.
//region testTransferRequest/Response
@Test
public void testGetOkHttpRequestType() throws IOException {
ParseOkHttpClient parseClient = new ParseOkHttpClient(10000, null);
ParseHttpRequest.Builder builder = new ParseHttpRequest.Builder();
builder.setUrl("http://www.parse.com");
// Get
ParseHttpRequest parseRequest = builder.setMethod(ParseHttpRequest.Method.GET).setBody(null).build();
Request okHttpRequest = parseClient.getRequest(parseRequest);
assertEquals(ParseHttpRequest.Method.GET.toString(), okHttpRequest.method());
// Post
parseRequest = builder.setMethod(ParseHttpRequest.Method.POST).setBody(new ParseByteArrayHttpBody("test", "application/json")).build();
okHttpRequest = parseClient.getRequest(parseRequest);
assertEquals(ParseHttpRequest.Method.POST.toString(), okHttpRequest.method());
// Delete
parseRequest = builder.setMethod(ParseHttpRequest.Method.DELETE).setBody(null).build();
okHttpRequest = parseClient.getRequest(parseRequest);
assertEquals(ParseHttpRequest.Method.DELETE.toString(), okHttpRequest.method());
// Put
parseRequest = builder.setMethod(ParseHttpRequest.Method.PUT).setBody(new ParseByteArrayHttpBody("test", "application/json")).build();
okHttpRequest = parseClient.getRequest(parseRequest);
assertEquals(ParseHttpRequest.Method.PUT.toString(), okHttpRequest.method());
}
use of com.parse.http.ParseHttpRequest in project Parse-SDK-Android by ParsePlatform.
the class ParseOkHttpClientTest method generateClientRequest.
// Generate a ParseHttpRequest sent to server
private ParseHttpRequest generateClientRequest() throws Exception {
Map<String, String> headers = new HashMap<>();
headers.put("requestkey", "requestValue");
JSONObject json = new JSONObject();
json.put("key", "value");
ParseHttpRequest parseRequest = new ParseHttpRequest.Builder().setUrl(server.url("/").toString()).setMethod(ParseHttpRequest.Method.POST).setBody(new ParseByteArrayHttpBody(json.toString().getBytes(), "application/json")).setHeaders(headers).build();
return parseRequest;
}
use of com.parse.http.ParseHttpRequest in project Parse-SDK-Android by ParsePlatform.
the class ParseOkHttpClientTest method testParseOkHttpClientExecuteWithExternalInterceptorAndGZIPResponse.
@Test
public void testParseOkHttpClientExecuteWithExternalInterceptorAndGZIPResponse() throws Exception {
// Make mock response
Buffer buffer = new Buffer();
final ByteArrayOutputStream byteOut = new ByteArrayOutputStream();
GZIPOutputStream gzipOut = new GZIPOutputStream(byteOut);
gzipOut.write("content".getBytes());
gzipOut.close();
buffer.write(byteOut.toByteArray());
MockResponse mockResponse = new MockResponse().setStatus("HTTP/1.1 " + 201 + " " + "OK").setBody(buffer).setHeader("Content-Encoding", "gzip");
// Start mock server
server.enqueue(mockResponse);
server.start();
ParseHttpClient client = new ParseOkHttpClient(10000, null);
final Semaphore done = new Semaphore(0);
// Add plain interceptor to disable decompress response stream
client.addExternalInterceptor(new ParseNetworkInterceptor() {
@Override
public ParseHttpResponse intercept(Chain chain) throws IOException {
done.release();
ParseHttpResponse parseResponse = chain.proceed(chain.getRequest());
// Make sure the response we get from the interceptor is the raw gzip stream
byte[] content = ParseIOUtils.toByteArray(parseResponse.getContent());
assertArrayEquals(byteOut.toByteArray(), content);
// We need to set a new stream since we have read it
return new ParseHttpResponse.Builder().setContent(new ByteArrayInputStream(byteOut.toByteArray())).build();
}
});
// We do not need to add Accept-Encoding header manually, httpClient library should do that.
String requestUrl = server.url("/").toString();
ParseHttpRequest parseRequest = new ParseHttpRequest.Builder().setUrl(requestUrl).setMethod(ParseHttpRequest.Method.GET).build();
// Execute request
ParseHttpResponse parseResponse = client.execute(parseRequest);
// Make sure the response we get is ungziped by OkHttp library
byte[] content = ParseIOUtils.toByteArray(parseResponse.getContent());
assertArrayEquals("content".getBytes(), content);
// Make sure interceptor is called
assertTrue(done.tryAcquire(10, TimeUnit.SECONDS));
server.shutdown();
}
use of com.parse.http.ParseHttpRequest in project Parse-SDK-Android by ParsePlatform.
the class ParseOkHttpClientTest method testGetOkHttpRequestWithEmptyContentType.
@Test
public void testGetOkHttpRequestWithEmptyContentType() throws Exception {
String url = "http://www.parse.com/";
String content = "test";
ParseHttpRequest parseRequest = new ParseHttpRequest.Builder().setUrl(url).setMethod(ParseHttpRequest.Method.POST).setBody(new ParseByteArrayHttpBody(content, null)).build();
ParseOkHttpClient parseClient = new ParseOkHttpClient(10000, null);
Request okHttpRequest = parseClient.getRequest(parseRequest);
// Verify Content-Type
assertNull(okHttpRequest.body().contentType());
}
Aggregations