Ben bir arama sunucuya müşteri verilerini göndermek için bir senaryo üzerinde çalışıyoruz. Ben bir süre önce bu konuda benzer bir sorun yolladı ama sonunda bazı yanıtları almak mümkün oldu. Ancak, başka bir sorunla karşı karşıya duyuyorum.
Benim localhost sunucudan komut sınarken, veri başarıyla gönderildi ediliyor ve ben bir 200 OK http yanıt alabilirsiniz. Ben curl_info bilgilerini kontrol benim localhost sunucu, request_header POST kullanılmış olduğunu göstermektedir.
Ben başka bir sunucuda aynı komut sınarken, hiçbir yanıt iade alır. HTTP_CODE ancak belirtir ve yetki sorunu olan 401 göstermektedir. Request_header ancak KAFA.
Şimdi herkes yerine POST kullanmak saniye sunucuyu zorlamak için bir yol olup olmadığını request_headers arasında böyle bir fark var neden beni anlamaya yardımcı olabilir. Ben bu sunucu KAFA istekleri ile ilgili bir sorun olduğu hissine olsun.
Ben kullanıyorum bu komut:
$full_url = $_GET['url'] . urlencode($_GET['attrib']);
$loginUsername = "123456";
$loginPassword = "123456";
$unencriptedString = $loginUsername.":".$loginPassword;
$encryptedString = base64_encode($unencriptedString);
$headers = array("Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8",
"Accept-Language: en-gb",
"Accept-Encoding: gzip,deflate",
"Accept-Charset: ISO-8859-1,utf-8;q=0.7,*;q=0.7",
"Keep-Alive: 300",
"Connection: keep-alive",
"Content-type: application/x-www-form-urlencoded;charset=UTF-8",
"Content-length: " . strlen($_GET['attrib']),
"Transfer-Encoding: chunked",
$_GET['attrib'],
);
$user_agent = "Mozilla/5.0 (Windows; U; Windows NT 6.0; en-US; rv:1.9.1.5)";
$ch = curl_init();
curl_setopt( $ch, CURLOPT_SSL_VERIFYPEER, 0 ); # required for https urls
curl_setopt( $ch, CURLOPT_USERAGENT, $user_agent);
curl_setopt( $ch, CURLOPT_URL, $_GET['url']);
curl_setopt( $ch, CURLOPT_USERPWD, "$loginUsername:$loginPassword"); //login
curl_setopt( $ch, CURLOPT_HTTPAUTH, CURLAUTH_ANY);
curl_setopt( $ch, CURLOPT_POST, 1);
curl_setopt( $ch, CURLOPT_POSTFIELDS, $_GET['attrib']);
curl_setopt( $ch, CURLOPT_HTTP_VERSION, CURL_HTTP_VERSION_1_1);
// curl_setopt( $ch, CURLOPT_TIMEOUT, 10);
curl_setopt( $ch, CURLINFO_HEADER_OUT, 1);
curl_setopt( $ch, CURLOPT_VERBOSE, 1);
curl_setopt( $ch, CURLOPT_RETURNTRANSFER,1);
$response = curl_exec($ch);
if (!$response) {
$response = curl_error($ch);
}
echo "<p>" . $response . "</p>";
$info = curl_getinfo($ch);
if (curl_error($ch)) {
echo "ERROR ". curl_error($ch) ."\n<br/>";
} else {
print "<pre>";
print_r($info);
print "</pre>";
}
echo "<p> </p>";
var_dump($headers);
curl_close($ch);
Teşekkürler
James