具有不同响应和请求标头的相同 CURL 帖子本地 PC 和 Live Server

问题描述

几天以来我一直在与 curl 发布结果作斗争。

来自我的本地主机的请求被接受,HTTP 代码为 200,但被托管服务器拒绝。您可以看到 HTTP 代码 500。我在另一台服务器上检查过,结果相同。

还有一些信息(即appconnect_time_us、connect_time_us、namelookup_time_us、pretransfer_time_us等)通过检查 curl_getinfo 中的信息从实时托管中丢失。

我正在使用以下脚本调用 eBay 提要上传 API

$res = uploadFile("1322323","D:/test.csv");

public function uploadFile($taskID,$fName)
    {
            $link = "https://api.ebay.com/sell/Feed/v1/task/$taskID/upload_file";
            $curl = curl_init();
            curl_setopt($curl,CURLINFO_HEADER_OUT,true);
            // curl_setopt($curl,CURLOPT_PROXY,'127.0.0.1:8888');

            curl_setopt_array($curl,array(
            CURLOPT_URL => $link,CURLOPT_RETURNTRANSFER => true,CURLOPT_ENCODING => '',CURLOPT_MAXREDirs => 10,CURLOPT_SSL_VERIFYHOST=> false,CURLOPT_SSL_VERIFYPEER=> false,CURLOPT_FILETIME => TRUE,CURLOPT_TIMEOUT => 0,CURLOPT_HEADER => 1,CURLOPT_FOLLOWLOCATION => true,CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,CURLOPT_CUSTomrEQUEST => 'POST',CURLOPT_POSTFIELDS => array('file'=> new CURLFILE(realpath($fName)),'type' => 'form-data'),CURLOPT_HTTPHEADER => array(
            'Authorization: Bearer ' . $this->userToken,'Content-Type: multipart/form-data','X-EBAY-C-MARKETPLACE-ID: EBAY_US'
            ),)); 
        
        
        $response = curl_exec($curl);

        $info = curl_getinfo($curl);

       
        echo("<br><br><br><br><b>curl_getinfo Result:</b><br><br>");

        foreach ($info as $itm => $val){
            if(is_array($itm)){
                foreach ($itm as $it => $vl){
                    echo "$it = $vl<br>";
                }
            }else if(is_array($val)){
                foreach ($val as $it => $vl){
                    echo "$it = $vl<br>";
                }
            }else{
                echo "$itm = $val<br>";
            }
        }

        
        echo("<br><br><br><br><b>Curl Response:</b><br><br>");

        var_dump($response);
        
        curl_close($curl);

    }

在我的本地主机上的结果:

curl_getinfo Result:

url = https://api.ebay.com/sell/Feed/v1/task/task-40-1312412930/upload_file
content_type =
http_code = 200
header_size = 314
request_size = 2534
filetime = -1
ssl_verify_result = 20
redirect_count = 0
total_time = 2.339028
namelookup_time = 0.003365
connect_time = 0.306189
pretransfer_time = 0.60357
size_upload = 12279
size_download = 0
speed_download = 0
speed_upload = 5249
download_content_length = 0
upload_content_length = -1
starttransfer_time = 0.895403
redirect_time = 0
redirect_url =
primary_ip = 209.140.129.1
primary_port = 443
local_ip = 192.168.18.9
local_port = 51158
http_version = 2
protocol = 2
ssl_verifyresult = 0
scheme = HTTPS
appconnect_time_us = 603319
connect_time_us = 306189
namelookup_time_us = 3365
pretransfer_time_us = 603570
redirect_time_us = 0
starttransfer_time_us = 895403
total_time_us = 2339028
request_header = POST /sell/Feed/v1/task/task-40-1312412930/upload_file HTTP/1.1 Host: api.ebay.com Accept: */* Accept-Encoding: deflate,gzip transfer-encoding: chunked Authorization: Bearer myTokenHear X-EBAY-C-MARKETPLACE-ID: EBAY_US Content-Type: multipart/form-data; boundary=------------------------afb12ce81b9fc15c Expect: 100-continue


Curl Response:

string(314) "HTTP/1.1 100 Continue HTTP/1.1 200 OK rlogid: t6pitaf%60btuf1%3D9whhpitaf%60btuf1*pgavr%28rbpv6713-1796a59c63d-0x2332 x-ebay-client-tls-version: TLSv1.3 content-length: 0 date: Fri,14 May 2021 10:09:00 GMT x-envoy-upstream-service-time: 857 server: ebay-proxy-server x-ebay-pop-id: UFES2-RNOAZ03-api "

在我的实时托管服务器上的结果

curl_getinfo Result:

url = https://api.ebay.com/sell/Feed/v1/task/task-40-1312412914/upload_file
content_type = application/json
http_code = 500
header_size = 368
request_size = 2525
filetime = -1
ssl_verify_result = 0
redirect_count = 0
total_time = 1.096718
namelookup_time = 3.7E-5
connect_time = 0.173644
pretransfer_time = 0.532899
size_upload = 12235
size_download = 228
speed_download = 207
speed_upload = 11156
download_content_length = 228
upload_content_length = 12235
starttransfer_time = 0.707947
redirect_time = 0
redirect_url =
primary_ip = 209.140.129.1
primary_port = 443
local_ip = 185.176.40.227
local_port = 44056
http_version = 2
protocol = 2
ssl_verifyresult = 0
scheme = HTTPS
request_header = POST /sell/Feed/v1/task/task-40-1312412914/upload_file HTTP/1.1 Host: api.ebay.com Accept: */* Accept-Encoding: deflate,gzip Authorization: Bearer  myTokenHear X-EBAY-C-MARKETPLACE-ID: EBAY_US Content-Length: 12235 Expect: 100-continue Content-Type: multipart/form-data; boundary=------------------------bab10bf72897da74

 

Curl Response:

string(596) "HTTP/1.1 100 Continue HTTP/1.1 500 Internal Server Error rlogid: t6pitaf%60btuf1%3D9iptpitaf%60btuf1*7ir%7F7%28rbpv6762-1796a59a0ff-0x232b x-ebay-client-tls-version: TLSv1.2 content-type: application/json content-length: 228 date: Fri,14 May 2021 10:08:49 GMT x-envoy-upstream-service-time: 41 server: ebay-proxy-server x-ebay-pop-id: UFES2-RNOAZ03-api {"errors":[{"errorId":160001,"domain":"API_Feed","subdomain":"Selling","category":"APPLICATION","message":"There was a problem with an eBay internal system or process. Contact eBay Developer Technical Support for assistance."}]}"

任何想法/建议

谢谢

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)