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


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

我在发布数据时遇到问题。我得到了一个答案"415不支持的媒体类型"。我可以获取数据,但如果我POST,我会得到一个警告"415不支持的媒体类型"。

欢迎任何帮助!

下面你可以看到错误的请求和HEADER和POST:

Anweser:

HTTP/1.1 400错误请求X-content-类型选项:nosniff X-xss-protection:1;mode=块Pragma:无缓存X帧选项:DENY设置cookie:HTTP错误:400


标题:

$httpClient -> setHeaders(array(
            "Content-Type : application/json; charset=utf-8",
            "Accept : application/json",
            "SM_USER :". $authToken,
            "Accept-Language : de"
    ));

帖子,获取:

    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!这特别意味着它重置了我们使用的标头。所以所有的步骤都是我们自己完成的。

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;
}