2016-06-23 4 views
0

Как отправить параметры URL с методом HttpURLConnection DELETE?HttpURLConnection DELETE с параметрами url

Я использую ниже код:

String targetURL = "http://example.com/some:data?initiator_id=6724181421"; 
URL url = new URL(targetURL); 
HttpURLConnection connection = (HttpURLConnection) url.openConnection(); 
connection.setRequestProperty ("dev_key", "12345"); 
connection.setReadTimeout(60000); 
connection.setConnectTimeout(60000); 
connection.setRequestMethod("DELETE"); 
connection.addRequestProperty("Content-Type", "application/x-www-form-urlencoded"); 
connection.setUseCaches(false); 
connection.setDoInput(true); 
connection.setDoOutput(true); 
int responseCode = connection.getResponseCode(); 
if(responseCode == HttpURLConnection.HTTP_OK){ 
    InputStream is = connection.getInputStream(); 
    BufferedReader rd = new BufferedReader(new InputStreamReader(is)); 
    String line; 
    StringBuffer response = new StringBuffer(); 
    while((line = rd.readLine()) != null) { 
     response.append(line); 
     response.append('\r'); 
    } 
    rd.close(); 
} 

Когда я выполнения выше код, который я всегда получаю ответ как недействительный initiator_id. Я тестировал то же самое с Postman и curl. Как в curl, так и в Postman работает.

+0

Вы пытаетесь установить 'initator_id' в качестве параметра запроса (часть URL-адреса) или как параметр формы (встроенный в тело запроса)? – dnault

+0

пытается добавить в качестве параметров запроса (часть URL-адреса). Когда я пытаюсь добавить в качестве параметра формы, я получаю исключение «HTTP-метод DELETE не поддерживает вывод» –

+0

Я отправлял параметр формы как DataOutputStream wr = new DataOutputStream (connection.getOutputStream()); wr.writeBytes ("initiator_id = 6724181421"); wr.flush(); wr.close(); Но получение исключения «HTTP-метод DELETE не поддерживает вывод» –

ответ

0

Спасибо @dnault. Обновление на Java 1.8 и отправка инициатора_ид в качестве параметра формы исправили проблему.

Смежные вопросы