這裏是我用來做PHP代碼請求,使用cURL:
<?php
$url = 'https://wwwcie.ups.com/rest/Track'; // TEST
// $url = 'https://onlinetools.ups.com/rest/Track'; // PROD
$ups_array = array(
'UPSSecurity' => array(
'UsernameToken' => array(
'Username' => 'ups_username_here',
'Password' => 'ups_password_here'
),
'ServiceAccessToken' => array(
'AccessLicenseNumber' => 'ups_access_license_number_here'
)
),
'TrackRequest' => array(
'Request' => array(
'RequestOption' => 1,
'TransactionReference' => array(
'CustomerContext' => 'Test 001'
)
),
'InquiryNumber' => 'ups_package_tracking_number_here' //'1ZE1XXXXXXXXXXXXXX'
)
);
$params = json_encode($ups_array); // TURN THE ARRAY INTO JSON
$results_json = scrape_page($url, $params); // POST TO THE API
$results = json_decode($results_json, true); // DECODE THE JSON AND TURN IT INTO AN ARRAY
print "<PRE><FONT COLOR=RED>"; print_r($results); print "</FONT></PRE>";
然後,對於實際捲曲功能,我有這樣的:
function scrape_page($url, $params) {
$headers = array();
$headers[] = 'Access-Control-Allow-Headers: Origin, X-Requested-With, Content-Type, Accept';
$headers[] = 'Access-Control-Allow-Methods: POST';
$headers[] = 'Access-Control-Allow-Origin: *';
$headers[] = 'Content-Type: application/json';
$ch = curl_init();
curl_setopt($ch, CURLOPT_CONNECTTIMEOUT,5);
curl_setopt($ch, CURLOPT_TIMEOUT, 45);
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_HTTPHEADER, $headers);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_POST, 1);
curl_setopt($ch, CURLOPT_POSTFIELDS, $params);
$response = curl_exec($ch);
// CHECK TO SEE IF WE GOT AN ERROR
// IF SO, FORMAT IT LIKE THIS ::28::Operation timed out afterseconds
if ((curl_errno($ch)) && (curl_errno($ch) != 0)) {
$response = "::".curl_errno($ch)."::".curl_error($ch);
}
// SEND THE RESPONSE BACK TO THE SCRIPT
return $response;
}
但是你怎麼做擺在首位的要求? – djack109
@ djack109我在答案中添加了API端點和POST方法。 – Dan
謝謝你。但是,您如何才能將數據傳輸到該網址。如果POST數據是表單字段名稱,則GET(URL)數據是什麼查詢字符串? – djack109