1

Volusion API を使用して、製品テーブルに製品をインポート/挿入しようとしています。 Volusion が提供するサンプル PHP コードを使用しました。

    $file = file_get_contents('C:\Users\Ray\Desktop\3.txt', true);

//  Create the Xml to POST to the Webservice

    $Xml_to_Send = "<?xml version=\"1.0\" encoding=\"utf-8\" ?>";
    $Xml_to_Send .= "<Volusion_API>";
//  $Xml_to_Send .= "<!--";
    $Xml_to_Send .= $file;
//  $Xml_to_Send .= "\"\"";
//  $Xml_to_Send .= "-->";
    $Xml_to_Send .= "</Volusion_API>";

    $url = "http://.servertrust.com/net/WebService.aspx?Login=support@mysite.com&EncryptedPassword=1234&Import=Insert";

    $header  = array(
    "MIME-Version: 1.0",
    "Content-type: text/xml; charset=utf-8",
    "Content-transfer-encoding: text",
    "Request-number: 1",
    "Document-type: Request",
    "Interface-Version: Test 1.4"
);

    //  Post and Return Xml
    $ch = curl_init();
    curl_setopt($ch, CURLOPT_URL,$url);
    curl_setopt($ch, CURLOPT_POST, true);
    curl_setopt($ch, CURLOPT_POSTFIELDS, $Xml_to_Send); 
    curl_setopt($ch, CURLOPT_HTTPHEADER, $header);
    $data = curl_exec($ch);

    //  Check for Errors
    if (curl_errno($ch)) {
        print curl_error($ch);
    } else {
       curl_close($ch);
    }

   //  Display the Xml Returned on the Browser
    echo $data;

このコードは、xml ファイルが通常のインポートの制限である 10MB 未満である限り、うまく機能します。何かをインポートしようとすると、次のエラーが表示されます。

<ReturnResult>
<Success>False</Success>
<Message>Maximum request length exceeded.</message>
</ReturnResults>Send Failure: Connection was reset

とにかくこの制限を回避する方法はありますか? 私が述べたように、このエラーを受け取ったときに 10MB の制限に達するまで、コードはうまく機能します。現在インポートしようとしているファイルは 30MB しかありません。ファイルのサイズを大きくするスクリプトまたはソリューション???

4

2 に答える 2

0

ファイルを分割する必要があります。curl タイムアウト エラー (エラー コード 28) が発生しない限り、一度に 10 個程度を超える製品をインポートできないことがわかりました。

于 2016-09-06T13:48:51.683 に答える