0

自分の値をセールスフォース API に渡したいと思っていました。エラーの最後の行でわかるように、ローン申請番号を取得しています。しかし、「ステータス200で失敗しました」も表示されます。コードで変更するものですか、それとも問題ありません。また、そのローン申込番号をフロントエンドに表示したかったのです。その構文はどうなりますか。私はすでにphpの配列構文を試しましたが、うまくいきません。エラーは以下の通り

Error: call to URL https://cs31.salesforce.com/services/apexrest/CreateLoan/ failed with status 200, response HTTP/1.1 200 OK Date: Tue, 01 Mar 2016 12:31:56 GMT Set-Cookie: BrowserId=cLMf4KPnTvqxcif286fSRQ;Path=/;Domain=.salesforce.com;Expires=Sat, 30-Apr-2016 12:31:56 GMT Expires: Thu, 01 Jan 1970 00:00:00 GMT Content-Type: application/json;charset=UTF-8 Transfer-Encoding: chunked "success: Loan Application Number - 804326966", curl_error , curl_errno 0

私のコードは次のとおりです

<?php session_start();
$json=$_SESSION['json'];
$details=json_decode($json);
//var_dump($details);
$name='LoanCreationService';
$instance_url='https://cs31.salesforce.com/services/apexrest/CreateLoan/';
$access_token = $details->{'access_token'};
$message=create_account($name, $instance_url, $access_token);
//echo $message->{'message'};
function create_account($name, $instance_url, $access_token) {
    $url = $instance_url;
    //$content = json_encode(array("Name" => $name));
    $content=$_SESSION['content'];;
    //echo $content;
    $curl = curl_init($url);
    curl_setopt($curl, CURLOPT_HEADER, true);
    curl_setopt($curl, CURLOPT_RETURNTRANSFER, true);
    curl_setopt($curl, CURLOPT_HTTPHEADER,
            array("Authorization: OAuth $access_token",
                "Content-type: application/json"));
    curl_setopt($curl, CURLOPT_POST, true);
    curl_setopt($curl, CURLOPT_POSTFIELDS, $content);

    $json_response = curl_exec($curl);
    //echo $json_response;
    $status = curl_getinfo($curl, CURLINFO_HTTP_CODE);

    if ( $status != 201 ) {
        die("Error: call to URL $url failed with status $status, response $json_response, curl_error " . curl_error($curl) . ", curl_errno " . curl_errno($curl));
    }

    //echo "HTTP status $status creating account<br/><br/>";

    curl_close($curl);

    $response = json_decode($json_response, true);

    echo $id = $response["id"];



    return $id;
}
?>
4

2 に答える 2

0

ステータス 200 OK は、リクエストが成功し、すでに を取得していることを意味します"success: Loan Application Number - 804326966"w3 ドキュメントを参照してください

これで試してみてもいいですか?

$json_response = curl_exec($curl);
    //echo $json_response;
    $status = curl_getinfo($curl);

if ($output === false || $status ['http_code'] != 200) {
  $output = "No cURL data returned for $url [". $status ['http_code']. "]";
  if (curl_error($curl))
    $output .= "\n". curl_error($curl);
  }
//now check the resopose

 var_dump($json_response);
    //echo "HTTP status $status creating account<br/><br/>";
    $key = "success: Loan Application Number -";
    $pos = strpos($json_response, $key);
    //echo $pos;
    $appNumber = substr($json_response,strlen($key)+ $pos,strlen($json_response));  
    echo $appNumber;
    curl_close($curl);
    $response = json_decode($json_response, true);

echo $id = $response["id"];
于 2016-03-02T06:03:43.113 に答える
0

探しているステータスは 201 であり、返されたエラー メッセージでわかるように、リクエストは 200 を返すため、コードでそれを強制終了しています。必要に応じて、ステータスを 201 に設定してみてください。

于 2016-03-02T05:42:26.683 に答える