我使用的是EHttpClient扩展yii。我的代码:
$file = file_get_contents($path, true);
Yii::import('ext.EHttpClient.*');
$client = new EHttpClient('https://secure.efaxdeveloper.com/EFax_WebFax.serv', array(
'maxredirects' => 3,
'timeout' => 30,
'Content-Type' => 'application/x-www-form-urlencoded',
'adapter' => 'EHttpClientAdapterCurl'));
$client->setParameterPost(array('id'=>urlencode("2313125942"), 'xml'=>urlencode($file)));
SiteHelper::printShow($client);
$response = $client->request("POST");
var_dump($response->isSuccessful());
SiteHelper::printShow($response);
我的xml数据:
<?xml version="1.0"?>
<OutboundRequest>
<AccessControl>
<UserName>b23s2323</UserName>
<Password>b23s2323</Password>
</AccessControl>
<Transmission>
<TransmissionControl>
<Resolution>STANDARD</Resolution>
</TransmissionControl>
<DispositionControl>
<DispositionLevel>BOTH</DispositionLevel>
<DispositionEmails>
<DispositionEmail>
<DispositionAddress>johnmorris201615@gmail.com</DispositionAddress>
</DispositionEmail>
</DispositionEmails>
</DispositionControl>
<Recipients>
<Recipient>
<RecipientFax>8189790412</RecipientFax>
</Recipient>
</Recipients>
<Files>
<File>
<FileContents>Base64 pdf here</FileContents>
<FileType>pdf</FileType>
</File>
</Files>
</Transmission>
</OutboundRequest>
我请求的信息:
EHttpClient Object
(
[config:protected] => Array
(
[maxredirects] => 3
[strictredirects] =>
[useragent] => EHttpClient
[timeout] => 30
[adapter] => EHttpClientAdapterCurl
[httpversion] => 1.1
[keepalive] =>
[storeresponse] => 1
[strict] => 1
[output_stream] =>
[encodecookies] => 1
[rfc3986_strict] =>
[content-type] => application/x-www-form-urlencoded
)
[adapter:protected] =>
[uri:protected] => EUriHttp Object
(
[_username:protected] =>
[_password:protected] =>
[_host:protected] => secure.efaxdeveloper.com
[_port:protected] => 443
[_path:protected] => /EFax_WebFax.serv
[_query:protected] =>
[_fragment:protected] =>
[_regex:protected] => Array
(
[alphanum] => [^W_]
[escaped] => (?:%[da-fA-F]{2})
[mark] => [-_.!~*'()[]]
[reserved] => [;/?:@&=+$,]
[unreserved] => (?:[^W_]|[-_.!~*'()[]])
[segment] => (?:(?:(?:[^W_]|[-_.!~*'()[]])|(?:%[da-fA-F]{2})|[:@&=+$,;])*)
[path] => (?:/(?:(?:(?:[^W_]|[-_.!~*'()[]])|(?:%[da-fA-F]{2})|[:@&=+$,;])*)?)+
[uric] => (?:[;/?:@&=+$,]|(?:[^W_]|[-_.!~*'()[]])|(?:%[da-fA-F]{2}))
)
[_scheme:protected] => https
)
[headers:protected] => Array
(
)
[method:protected] => GET
[paramsGet:protected] => Array
(
)
[paramsPost:protected] => Array
(
[id] => 2313125942
[xml] => The%encoded%url%xml%data
)
[cookiejar:protected] =>
[last_request:protected] =>
[last_response:protected] =>
[redirectCounter:protected] => 0
[_unmaskStatus:protected] =>
[_queryBracketsEscaped:protected] => 1
)
我已经阅读了https://secure.efaxdeveloper.com/downloads.jspOutbound已经在xml数据和请求post上设置了所有必需的字段。但我总是从efax开发者API那里得到这个错误:
Post Unsuccessful!
Your request has failed due to invalid data.
Please refer to our documentation prior to resubmitting.
Error Level: User
Error Message: XML data argument was not passed.
Please contact us at 888-278-8666 if you continue to encounter errors.
错误消息:未传递XML数据参数我的XML数据有什么问题
(*请注意,在我的请求中,xml-post参数设置了我的xml的编码文件内容)
我使用了PHP efax。
PHP eFax是一个包装eFax®开发人员API的PHP类。使用PHPeFax可自动执行发送和接收传真的任务以电子方式从您的PHP驱动的web服务器。
不要使用urlencode。只需将内容类型设置为application/x-www-form-urlencoded。