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;
}
我有一个问题 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;
}