मैं JSON अनुरोध के साथ REST सेवा को कॉल कर रहा हूं और यह एक HTTP 415 "Unsupported Media Type"
त्रुटि के साथ प्रतिक्रिया करता है ।
अनुरोध सामग्री प्रकार पर सेट है ("Content-Type", "application/json; charset=utf8")
।
यदि मैं अनुरोध में JSON ऑब्जेक्ट शामिल नहीं करता हूं तो यह ठीक काम करता है। मैं google-gson-2.2.4
JSON के लिए लाइब्रेरी का उपयोग कर रहा हूं ।
मैंने विभिन्न पुस्तकालयों के एक जोड़े का उपयोग करने की कोशिश की, लेकिन इससे कोई फर्क नहीं पड़ा।
किसी को भी इसे हल करने के लिए मेरी मदद कर सकते हैं?
यहाँ मेरा कोड है:
public static void main(String[] args) throws Exception
{
JsonObject requestJson = new JsonObject();
String url = "xxx";
//method call for generating json
requestJson = generateJSON();
URL myurl = new URL(url);
HttpURLConnection con = (HttpURLConnection)myurl.openConnection();
con.setDoOutput(true);
con.setDoInput(true);
con.setRequestProperty("Content-Type", "application/json; charset=utf8");
con.setRequestProperty("Accept", "application/json");
con.setRequestProperty("Method", "POST");
OutputStream os = con.getOutputStream();
os.write(requestJson.toString().getBytes("UTF-8"));
os.close();
StringBuilder sb = new StringBuilder();
int HttpResult =con.getResponseCode();
if(HttpResult ==HttpURLConnection.HTTP_OK){
BufferedReader br = new BufferedReader(new InputStreamReader(con.getInputStream(),"utf-8"));
String line = null;
while ((line = br.readLine()) != null) {
sb.append(line + "\n");
}
br.close();
System.out.println(""+sb.toString());
}else{
System.out.println(con.getResponseCode());
System.out.println(con.getResponseMessage());
}
}
public static JsonObject generateJSON () throws MalformedURLException
{
String s = "http://www.example.com";
s.replaceAll("/", "\\/");
JsonObject reqparam=new JsonObject();
reqparam.addProperty("type", "arl");
reqparam.addProperty("action", "remove");
reqparam.addProperty("domain", "staging");
reqparam.addProperty("objects", s);
return reqparam;
}
}
का मान requestJson.toString()
है:
{"type":"arl","action":"remove","domain":"staging","objects":"http://www.example.com"}
requestJson.toString()