나는 컬을 사용하여 API (메일 침프)에 요청을 보내려고. GET과 함께 작동하지만 GET-URl을 POST를 통해 적절한 연관 PHP 배열로 변환하는 데 문제가 있습니다. 편집 MarcB가 주석으로, 요청이 PHP는 - 연관 배열의 구조를 얻을 수없는 권리
내가 asteriks (*이)로 변수의 값을 대체 있습니다 등을하는 아이폰에 제한과 같은 몇 가지 부정적인 측면을 가지고 GET 때문입니다.
Array
(
[apikey] => ***
[order] => Array
(
[id] => ***
[campaign_id] => ***
[email_id] => ***
[total] => ***
[order_date] => ***
[shipping] => ***
[tax] => ***
[store_id] => ***
[store_name] => ***
[items] => Array
(
[0] => Array
(
[product_id] => ***
[category_id] => ***
[category_name] => ***
)
[1] => Array
(
[product_id] => ***
[category_id] => ***
[category_name] => ***
)
...
)
)
)
응답은 :
Validation error: {\"order\":\"Please enter a struct\\\/associative array\"}
상관
https://us3.api.mailchimp.com/2.0/ecomm/order-add.json?apikey=***
&order[id]=***
&order[campaign_id]=***
&order[email_id]=***
&order[total]=***
&order[store_id]=***
&order[items][0][product_id]=***
&order[items][0][category_id]=***
&order[items][0][category_name]=***
&order[items][1][product_id]=***
&order[items][1][category_id]=***
&order[items][1][category_name]=***
...
이는 POST 요청에 대한 PHP 배열이다
이 작용 GET-파라미터 아이디어, 내가 여기서 누락 된 부분은 무엇입니까? 구조가 같지 않아?
-
UPDATE :
이는 컬 코드는 다음과 같습니다 스타터
function httpPost($url,$params)
{
$postData = '';
//create name value pairs seperated by &
foreach($params as $k => $v)
{
$postData .= $k . '='.$v.'&';
}
rtrim($postData, '&');
$ch = curl_init();
curl_setopt($ch,CURLOPT_URL,$url);
curl_setopt($ch,CURLOPT_RETURNTRANSFER,true);
curl_setopt($ch,CURLOPT_HEADER, false);
curl_setopt($ch, CURLOPT_POST, count($postData));
curl_setopt($ch, CURLOPT_POSTFIELDS, $postData);
$output=curl_exec($ch);
$httpCode = curl_getinfo($ch, CURLINFO_HTTP_CODE);
curl_close($ch);
return array($output, $httpCode);
}
print_r(httpPost($mc_api_url, $curl_data));
긴 쿼리 문자열입니다. 많은 데이터는 GET 쿼리가 아닌 게시를 통해 이동해야합니다.검색어 문자열은 이유 때문에 길이가 제한되어 있으므로 어딘가에서 잘릴 수 있습니다. –
안녕하세요 @ MarcB, 네 감사합니다. 당신 말이 맞습니다. 그래서 POST 대신 GET하지 말고 싶습니다. GET은 작동한다면 그냥 시도했지만 POST를 사용할 때이 오류가 나타나서 왜 볼 수 없습니까? – Chris
글쎄, 유효성 검사 오류가 JSON처럼 보입니다. mailchimp API가 json을 기대합니까? 그런 경우에 적절한 json_encode()를 수행하고 있습니까? –