使用EHttpClient Yii的出站efax开发者api请求不起作用


Outbound efax developer api request using EHttpClient Yii not working

我使用的是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。