Поддерживает ли jsoup запрос restful/rest
Подскажите пожалуйста, как создать запрос http(s) в jsoup с методом запроса PUT или DELETE?
Я наткнулся на эту ссылку: https://github.com/jhy/jsoup/issues/158 но ей уже несколько лет, так что, надеюсь, в этой библиотеке реализована некоторая спокойная поддержка.
Насколько я вижу объект HttpConnection, я могу использовать только методы запросов "get" или "post".
http://jsoup.org/apidocs/org/jsoup/helper/HttpConnection.html
1 ответ
Jsoup не поддерживает методы PUT и DELETE. Поскольку это синтаксический анализатор, он не должен поддерживать эти операции. Что вы можете сделать, это использовать HttpURLConnection
, который является тем же самым, что Jsoup использует внизу. При этом вы можете использовать любой метод, который вам нужен, и в конце концов проанализировать результат с помощью jsoup (если он вам действительно нужен). Проверьте этот код:
import java.io.BufferedReader;
import java.io.InputStreamReader;
import java.io.OutputStreamWriter;
import java.net.HttpURLConnection;
import java.net.URL;
public class Main {
public static void main(String[] args) {
try {
String rawData = "RAW_DATA_HERE";
String url = "URL_HERE";
URL obj = new URL(url);
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
//add reuqest header
con.setRequestMethod("METHOD_HERE"); //e.g POST
con.setRequestProperty("KEY_HERE", "VALUE_HERE"); //e.g key = Accept, value = application/json
con.setDoOutput(true);
OutputStreamWriter w = new OutputStreamWriter(con.getOutputStream(), "UTF-8");
w.write(rawData);
w.close();
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
System.out.println("Response code : " + responseCode);
System.out.println(response.toString());
//Use Jsoup on response to parse it if it makes your work easier.
} catch(Exception e) {
e.printStackTrace();
}
}
}