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

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了使用EHttpClient Yii的出站efax开发人员api请求不起作用相关的知识,希望对你有一定的参考价值。

我正在使用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.jsp Outbound中读取了文档,已经在xml数据上设置了所有必填字段并请求发布。但我总是从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®DeveloperAPI的PHP类。使用PHP eFax自动完成从PHP驱动的Web服务器以电子方式发送和接收传真的任务。

另一答案

不要使用urlencode。只需将内容类型设置为application / x-www-form-urlencoded即可。

以上是关于使用EHttpClient Yii的出站efax开发人员api请求不起作用的主要内容,如果未能解决你的问题,请参考以下文章

火车出站

VSTS 部署组的 NSG 出站规则

无法使用 URL 重写出站规则更改 IIS 响应代码

最大出站连接数

使用GA和jQuery跟踪出站链接

GCP 托管的 Cloud Run 的出站 IP 范围是多少?