1

私は半日を費やして、Jersey サービスが JSON を受け入れて操作できるように夢中になりました。

これが私がやっていることです: Zend Frameworkを使用したPHP:

$client = new Zend_Http_Client("http://localhost:8080/api/");
    $data = array("city"=> "Paris", "zip" => "1111");
    $json = json_encode($data);     
    $client->setHeaders("Content-type", "application/json");
    $client->setRawData($json, 'application/json')->request("GET");

API メソッド:

@GET
    @Produces(MediaType.APPLICATION_JSON)
    @Consumes(MediaType.APPLICATION_JSON)   
    public Response getAPI( Address addr) {
        JSONObject out = new JSONObject();
        out.put("city test",addr.getCity());
        Response response = null;
        return response.ok(out.toString()).header("Accept", "application/json").build();
    }   

別のファイルに、注釈付きのクラスがあります。

import javax.xml.bind.annotation.XmlAccessType;
import javax.xml.bind.annotation.XmlAccessorType;
import javax.xml.bind.annotation.XmlElement;
import javax.xml.bind.annotation.XmlRootElement;


@XmlRootElement
public class Address
{
    @XmlElement(name="city")
    public String city;
    @XmlElement(name="zip")
    public String zip;

     public String getCity() {
          return city;
     }
}

サポートされていないメディア タイプのエラーが表示されます。

    Zend_Http_Response Object
(
    [version:protected] => 1.1
    [code:protected] => 415
    [message:protected] => Unsupported Media Type
    [headers:protected] => Array
        (
            [Server] => Apache-Coyote/1.1
            [Content-type] => text/html;charset=utf-8
            [Content-length] => 1117
            [Date] => Tue, 29 May 2012 17:55:03 GMT
            [Connection] => close
        )

    [body:protected] =>  

私は何が欠けていますか?

ありがとう、ダニエレ

4

1 に答える 1

1

あなたはこれを複雑にしすぎていると思います。Beanには注釈が付けられているため、jsonオブジェクトを作成する必要はありません。それはあなたのために行われます。

return Reponse.ok(addr).build();
于 2012-05-29T18:22:41.930 に答える