我正在使用JSON请求调用REST服务,它给出了Http 415"不支持的媒体类型"错误.
请求内容类型设置为("Content-Type","application/json; charset = utf8").
如果我在请求中不包含Json对象,它可以正常工作.我正在为json使用google-gson-2.2.4库.
我尝试使用几个不同的库,但它没有任何区别.
有人可以帮我解决这个问题吗?
这是我的代码:
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 …Run Code Online (Sandbox Code Playgroud) 我的RESTful文件上传代码:
@Path("/upload")
@POST
@Consumes("multipart/form-data")
public String post(
@FormDataParam("part") String s,
@FormDataParam("part") FormDataContentDisposition d) {
return s + ":" + d.getFileName();
}
Run Code Online (Sandbox Code Playgroud)
当我尝试使用curl curl -X POST --form part=@file.txt url上传文件时
我收到HTTP 415不支持的媒体类型错误.怎么了 ?