API POST PHP - 415 不支持的媒体类型(Zend Framework)

API POST PHP - 415 Unsupported Media Type (Zend Framework)

我有一个问题 POSTing data.I 得到一个 anweser“415 不支持的媒体类型”。 我可以获取数据,但是如果我 POST 我得到一个答案“415 不支持的媒体类型”。

欢迎任何帮助!

您可以在下面看到错误的请求以及 HEADER 和 POST:

回答:

HTTP/1.1 400 错误请求 X-content-type-options: nosniff X-xss-protection: 1; mode=block Pragma: no-cache X-frame-options: DENY Set-cookie: HTTP 错误:400


Header:

$httpClient -> setHeaders(array(

            "Content-Type : application/json; charset=utf-8",
            "Accept : application/json",
            "SM_USER :". $authToken,
            "Accept-Language : de"

    ));

POST,获取:

    switch($requestType) {

        case "get":

            $restRes = $this->restClient->restGet($path,$queryParameter);
            $result = $this->_handleRestResult($restRes);
            return $result;
            break;

        case "post":

           $restRes = $this->restClient->restPost($path,$queryParameter);

            break;

        case "delete":

        case "put":

    }

查询参数

 $query = json_encode(array(

            "latitude" => $lat, 
            "longitude" => $long,
            "service" => $service

    ));

路径

 $path = $this-service->rest->path."/resource/Service/";

我们不能使用$this->restClient->restPost,因为它会重置整个 又是底层Http_Client! 这具体意味着它重置了我们使用的 headers 。 所以我们自己完成所有步骤。

switch($requestType) {


    case "post":

       $httpClient->setUri($this->_config->service->rest->host."".$path);
                $httpClient->setMethod('POST');
                $httpClient->setRawData($queryParameter, $httpClient->getHeader('Content-Type'));    
                $restRes = $httpClient->request($method);

           $this->restClient->getHttpClient()->getHeader('Content-Type'));
            print_r($this->restClient->getHttpClient()->getHeader('Accept'));
            print_r($this->restClient->getHttpClient()->getLastRequest());
            print_r($restRes);
            print_r($this->restClient->getHttpClient()->getLastResponse());

             $result = $this->_handleRestResult($restRes);
             return $result;
             break;
        break;

    case "delete":

          //

    case "put":

          //

    default:
    case "get":

        $restRes = $this->restClient->restGet($path,$queryParameter);
        $result = $this->_handleRestResult($restRes);
        return $result;
        break;
}