Web サービスをテストするテスト プログラムを作成しようとしています。GET メソッドを使用して JSON オブジェクトを Web サービスに送信していますが、機能していません。テスト URL は次のようになります。
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 オブジェクトがパスの場所の最後に「/」を付けますか?
よろしくお願いします。