1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27 package org.apache.http.client.utils;
28
29
30 import org.apache.http.Consts;
31 import org.apache.http.NameValuePair;
32 import org.apache.http.client.methods.HttpUriRequest;
33 import org.apache.http.client.methods.RequestBuilder;
34 import org.apache.http.message.BasicNameValuePair;
35 import org.junit.Assert;
36 import org.junit.Test;
37
38 import java.net.URLEncoder;
39 import java.nio.charset.Charset;
40
41 public class TestRequestBuilder {
42
43 @Test
44 public void testBuildGETwithUTF8() throws Exception {
45 assertBuild(Consts.UTF_8);
46 }
47
48 @Test
49 public void testBuildGETwithISO88591() throws Exception {
50 assertBuild(Consts.ISO_8859_1);
51 }
52
53 private void assertBuild(final Charset charset) throws Exception {
54 final RequestBuilder requestBuilder = RequestBuilder.create("GET").setCharset(charset);
55 requestBuilder.setUri("https://somehost.com/stuff");
56 requestBuilder.addParameters(createParameters());
57
58 final String encodedData1 = URLEncoder.encode("\"1\u00aa position\"", charset.displayName());
59 final String encodedData2 = URLEncoder.encode("Jos\u00e9 Abra\u00e3o", charset.displayName());
60
61 final String uriExpected = String.format("https://somehost.com/stuff?parameter1=value1¶meter2=%s¶meter3=%s", encodedData1, encodedData2);
62
63 final HttpUriRequest request = requestBuilder.build();
64 Assert.assertEquals(uriExpected, request.getURI().toString());
65 }
66
67 private NameValuePair[] createParameters() {
68 final NameValuePair parameters[] = new NameValuePair[3];
69 parameters[0] = new BasicNameValuePair("parameter1", "value1");
70 parameters[1] = new BasicNameValuePair("parameter2", "\"1\u00aa position\"");
71 parameters[2] = new BasicNameValuePair("parameter3", "Jos\u00e9 Abra\u00e3o");
72 return parameters;
73 }
74 }