0

我有一个 REST url(使用 DropWizard 用 Ja​​va 编码),我想从 PHP 向其发布一个 json。但是我收到415 Unsupported MediaType错误。我查看了许多论坛,但无法弄清楚错误可能是什么。我的两端代码如下:

服务器

@POST
@Path("/update-table")
@Timed
public TableUpdateResponse updateTable(TestClass testObj) {
    LOG.info("inside updateTable function");
    //other code ...
}

客户

<?php

$url = "localhost:8084/update-table"
$ch = curl_init($url);

$jsonString = array("testString" => "Hello World!");            
$json =  json_encode($jsonString);

$headers = array();
$headers[] = 'Content-Type: application/json';

curl_setopt($ch, CURLOPT_POST, 1);
curl_setopt($ch, CURLOPT_HTTPHEADER, $headers);
curl_setopt($ch, CURLOPT_POSTFIELDS, $json);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); 

$response = curl_exec($ch);
echo $response;

?>

测试类

public class TestClass {
    private String testString;

    public TestClass(String testString) {
        super();
        this.testString = testString;
    }

    public TestClass() {
        super();
    }

    public String getTestString() {
        return testString;
    }

    public void setTestString(String testString) {
        this.testString = testString;
    }

}

请求未达到 REST(未打印 LOG 行)。我在这里想念什么?

4

2 回答 2

0

添加注释@Consumes(MediaType.APPLICATION_JSON)

于 2014-01-15T11:46:50.547 回答
0

尝试将 application/json 内容类型更改为其中之一

application/json
application/x-javascript
text/javascript
text/x-javascript
text/x-json

尽管 RFC 中指定的正确的是 application/json,但您的 java 代码可能有问题

于 2012-12-13T10:43:37.370 回答