1

.xml ファイルを API - REST API - BigCommerce に投稿する必要があります。

比較的基本的な API です。

このphp curlスクリプトを試してxmlファイルをAPIに投稿しましたが、うまくいきませんでした。

<?php

// test XML API POST
$filename = "test.xml"; 
$handle = fopen($filename, "r"); 
$XPost = fread($handle, filesize($filename));
fclose($handle);

$url = "https://urlofapi"; // set REST URL 
$api_token = "apihashkey";
$xml = urlencode($XPost);
$user_agent = "SoEasy REST API Client 0.1";

// Get the curl session object 
$session = curl_init($url);
// set url to post to curl_setopt($session, CURLOPT_URL,$url); 

curl_setopt($session, CURLOPT_POST, true); // Tell curl to use HTTP POST; 
curl_setopt($session, CURLOPT_POSTFIELDS, $XPost); // Tell curl that this is the body of the POST 
curl_setopt($session, CURLOPT_USERPWD, $api_token); // define userpassword api token
curl_setopt($session, CURLOPT_HTTPAUTH, CURLAUTH_ANY); // defining REST basic authentication 
curl_setopt($session, CURLOPT_HTTPHEADER, Array("Content-Type: application/xml")); // define header 
curl_setopt($session, CURLOPT_SSL_VERIFYPEER, false); // ignore ssl cert for debug purposes curl_setopt($session, CURLOPT_USERAGENT, $user_agent); // user agent so the api knows what for some unknown reason 
curl_setopt($session, CURLOPT_HEADER, 1); // Tell curl not to return headers, but do return the response 
curl_setopt($session, CURLOPT_RETURNTRANSFER, true); // allow redirects curl_setopt($session, CURLOPT_FOLLOWLOCATION, true);

$response = curl_exec($session);
print_r($response);
curl_close($session);
?>

これはこれまでのところ接続されていますが、正常に接続されていません - エラーが発生します -

Warning: fread() [function.fread]: Length parameter must be greater than 0 in /home/user/public_html/test/new.php on line 7

HTTP/1.1 405 Method Not Allowed Date: Sun, 12 Aug 2012 07:31:11 GMT 

Server: Apache Allow: GET, HEAD, OPTIONS
X-BC-ApiLimit-Remaining: 5000 X-BC-Store-Version: 7.3.37 
X-Powered-By: PleskLin Transfer-Encoding: chunked Content-Type: application/xml 
X-Pad: avoid browser bug 405 This resource does not support the requested method.
 Refer to the Allow response header for methods supported by this resource.

.xml ファイルを Big Commerce API にポストするだけです。.xml はアカウント ソフトウェアから取得され、正しい xml を生成します。

4

2 に答える 2

1

ファイルtest.xmlの長さが 0 であるか、(おそらくより多くの場合) ファイルが存在しません。

PHP エラー ログを有効にしてから、エラー ログを追跡して、そのような問題について調べたり、実際のエラー チェックを行ったりする必要があります。

さらに、サポートしていないサーバー エンドポイントに POST 要求を送信しています。ここでは、提供されるデバッグ情報だけでなく、指定されたエラー メッセージを正しく理解するために、HTTP プロトコルの基本について学習する必要があります。

于 2012-08-12T19:20:51.647 に答える