2

PHP 経由で Web サービスにアクセスしようとしています。Web サービスは jpeg 画像を含むバイト配列を返し、それが Web ページに表示されます。

現在、このサービスは C# 呼び出しによってアクセスされています。

ImgService i = new ImgService();

資格情報は次のように設定されます。

i.Credentials = new System.Net.NetworkCredential(username, password, domain);

Web サービスへのアクセス:

byte[] result = null;

result = i.GetThumbNail(raceId, startNum, seasonId, height, width, true);
Response.ContentType = "image/jpeg";
Response.BinaryWrite(result);

このサービスは C# で正常に動作していますが、PHP を介してアクセスする必要があり、取得できる画像は "missing.jpg" だけです。これが資格情報が間違っていることを意味するのか、それとも何か他のことが間違っているのかはわかりませんが、資格情報の部分については非常に確信が持てません。

これは資格情報のない PHP コードです。

$client = new SoapClient("http://www.example.com/imgService.asmx?WSDL");
$result = $client->GetThumbNail($args['race'], $args['startnumber'], $args['year'], 0, 0, true);
$image_data = $result->GetThumbNailResult;
echo '<img src="data:image/jpeg;base64,'.base64_encode($image_data).'">';

私はまた、このような呼び出しを使用してみました:

$headers = array(
                            'username'  =>  'user',
                            'password'  =>  'pass',
                            'domain'    =>  'domain'
                            );
$header = new SoapHeader("http://tempuri.org/", 'UserCredentials', $headers, false);
$client->__setSoapHeaders($header);
$result = $client->GetThumbNail(parameters);

どちらのバージョンでも同じ missing.jpg が表示され、エラー メッセージは表示されません。サービスが呼び出しを受け入れなかった場合、エラーが発生すると思いますか?

4

1 に答える 1

0

古い W​​eb サービスではこの問題を解決できなかったので、古いサービスと同じことを行う新しい HttpHandler を作成することになりました。しかたがない...

于 2015-05-29T08:50:57.240 に答える