2013-04-08 2 views
0

SubmitFeed 작업을 사용하여 수량을 업데이트하려고합니다. 누구도이 경험이 있습니까? 내가받는 오류 : '작업 또는 작업 쿼리 매개 변수가 있어야합니다',하지만 'Action = SubmitFeed'쿼리 문자열에 있습니다.아마존 mws 피드 제출

완벽하게 작동하는 네 가지 다른 기능 (RequestReport, GetReportRequestList, GetReport, & GetFeedSubmissionList)을 작성했습니다. 파일을 게시하기 위해 일부 cURL 구성 옵션이 누락되었다고 생각합니다.

컬 옵션 :

$ch = curl_init($url); 
curl_setopt($ch, CURLOPT_HTTPHEADER => array(
    'Content-Type: application/x-www-form-urlencoded', 
    'Content-MD5: '. $md5, 
    'Transfer-Encoding: chunked', 
)), 
curl_setopt($ch, CURLINFO_HEADER_OUT => true); 
curl_setopt($ch, CURLOPT_UPLOAD => true); 
curl_setopt($ch, CURLOPT_PROTOCOLS => CURLPROTO_HTTPS); 
curl_setopt($ch, CURLOPT_POST, true); 
curl_setopt($ch, CURLOPT_VERBOSE, true); 
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, FALSE); 
curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, FALSE); 
curl_setopt($ch, CURLOPT_PORT , 443); 
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); 
curl_setopt($ch, CURLOPT_POSTFIELDS, implode('&', $url_parts)); 

사람이 도움을 수 있습니까? 고맙습니다.

+0

안녕하세요, 모든 매개 변수를 공유해주십시오. 도움을 줄 수는 없습니까? –

+0

어떤 매개 변수입니까? 이것들은 내가 cURL을 위해 가지고있는 전부입니다. 이것은 다른 사람들에게 도움이 될 수 있습니다 : 조회 AMTU. 이것은 훨씬 간단한 피드 제출 방법입니다. AMTU는 코드 작성 몇 분 후에 작업했습니다. – danilo

답변

0

SubmitFeed 전화를 받으려면 Content-Type: text/xml을 사용하고 XML 피드를 CURLOPT_POSTFIELDS로 사용해야합니다. 단지 $ XMLDATA를 떠나 : 전화 RequestReport, GetReportRequestList, GetReport, & GetFeedSubmissionList에도 작품의 이런 종류의 것을

$ch = curl_init($url_with_fields);     <-- change 1 
curl_setopt($ch, CURLOPT_HTTPHEADER => array(
    'Content-Type: text/xml',      <-- change 2 
    'Content-MD5: '. $md5, 
    'Transfer-Encoding: chunked', 
)), 
curl_setopt($ch, CURLINFO_HEADER_OUT => true); 
curl_setopt($ch, CURLOPT_UPLOAD => true); 
curl_setopt($ch, CURLOPT_PROTOCOLS => CURLPROTO_HTTPS); 
curl_setopt($ch, CURLOPT_POST, true); 
curl_setopt($ch, CURLOPT_VERBOSE, true); 
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, FALSE); 
curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, FALSE); 
curl_setopt($ch, CURLOPT_PORT , 443); 
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); 
curl_setopt($ch, CURLOPT_POSTFIELDS, $xmldata);  <-- change 3 

주 : 이것은 GET 것처럼 다른 옵션 필드는 URL로 이동해야합니다 이 경우 비어 있습니다.

+0

PUT에 메서드를 변경하기 때문에 CURLOPT_UPLOAD를 설정할 필요가 없습니다. 필요한 것은 POST – debianek

+0

@debianek입니다. 그의 코드를 최소한으로 변경하려고 시도 했으므로 거기에 CURLOPT_UPLOAD가 없다는 것을 알았습니다. 나는 그것이 여전히 효과가 있다고 생각하지만 실제로 시도하지는 않았다. – Hazzit

관련 문제