我正在尝试编写一个测试程序来测试我的网络服务。我正在通过 GET 方法向我的 Web 服务发送一个 JSON 对象,但它不起作用。我的测试网址如下所示:
http://testserver:8080/mydir/{"filename":"test.jpg", "Path":"test/2/2"}
我认为路径中的“/”会给我带来问题,因为一旦我删除它们,程序就可以正常工作。
每个REST 如何将包含“/”的值作为 URI 中的路径参数传递?,我尝试使用 java.net.URLEncoder.encode 但这没有帮助。这是我的测试程序的片段:
// some code from main method
<snip snip>
String url = "http://testserver:8080/mydir/";
String JSON = "{\"filename\":\"test.jpg\",\"Path\":\"test/2/2\"}";
String enc_JSON = URLEncoder.encode(JSON,"UTF-8");
String testGet = url + enc_JSON;
String out2 = TestCode.httpGet(testGet);
<snip snip>
// code from httpGet method
public static String httpGet(String serverURL) {
URL url;
HttpURLConnection conn;
try {
url = new URL (serverURL);
conn = (HttpURLConnection) url.openConnection();
conn.setRequestMethod("GET");
conn.setUseCaches(false);
conn.setDoInput(true);
conn.setDoOutput(true);
conn.connect();
// failing at line below
InputStream input = conn.getInputStream();
<snip snip>
我的程序的结果是我得到一个 HTTP 响应代码:400。我是否忘记在 httpGet() 方法中的代码中添加一些导致它失败的内容,或者我是否因为 JSON 对象而在我的 URL 中做了一些非法的事情最后在路径位置加上“/”?
提前感谢您的帮助。