0

以下のコードを使用して、API を使用してサード パーティのサイトからカテゴリを取得しましたが、残念ながら、API でストリーム コンテキストを要求できず、内部エラーが発生しました。

参考までに: zend フレームワークで使用されます。

$header = "Authorization: Bearer ".$accestoken."\r\n"."Content-Type:text/xml";//.'Content-Type:application/xml';

$wsdl = 'wsdl url';

$context = stream_context_create(array('http' => array('header' => $header,'method'=>'GET')));

             $options = array('stream_context'=>$context,'encoding'=>'ISO-8859-1','exceptions'=>FALSE);


            $params = array ('accessToken' => $accestoken);


            $response = $client->getAdCategories($params);

             print_r($response);

したがって、上記のコードを見つけて、この問題の解決策を提供してください。

4

2 に答える 2

1
$httpHeaders = array(
            'http'=>array(
            'protocol_version' => 1.1,
            'header' => "Authorization:Bearer ".$accestoken."\r\n" ,
                    "Connection: close"
            ));


$context = stream_context_create($httpHeaders);

    $soapparams = array(                    
                                            'stream_context' => $context,

                            );
$client = new SoapClient($wsdl, $soapparams);
$response = $client->getAdCategories($params);

         print_r($response);

https://bugs.php.net/bug.php?id=49853を参照してください

于 2013-02-22T09:12:26.243 に答える
0

わかりました。少なくとも、これはあなたが操作しようとしている SOAP サービスです。次に、のようなものを使用する必要があり Zend_Soap_Clientます。

あなたはWSDLを持っているようです...だから、

$client = new Zend_Soap_Client("yourwsdl.wsdl");

そして、次のようなリクエストを行います

$retval = $client->method1(10);

あなたのコードを見ると、どの認証アプローチが使用されているか 100% わかりません。基本的な HTTP 認証の場合、クライアントのコンストラクターのオプションとしてユーザー名とパスワードを渡すだけです。

ヘッダーの設定は次のようになります。

$auth = new stdClass();
$auth->user = 'joe';
$auth->token = '12345'; 

$authHeader = new SoapHeader('authNamespace', 'authenticate', $auth);

$client->__setSoapHeaders(array($authHeader));

さらに支援が必要な場合は、WSDL を投稿してください。

于 2013-02-15T18:30:54.037 に答える