كيفية الانتقال من وظيفة إلى GET في PHP الضفيرة

StackOverflow https://stackoverflow.com/questions/1225409

  •  22-07-2019
  •  | 
  •  

سؤال

ولقد حاولت التحول من طلب المشاركة السابقة لطلب الحصول على. التي يفترض انها لإحضار ولكن في النهاية لا وظيفة.

وحاولت التالية في PHP:

curl_setopt($curl_handle, CURLOPT_POSTFIELDS, null);
curl_setopt($curl_handle, CURLOPT_POST, FALSE);
curl_setopt($curl_handle, CURLOPT_HTTPGET, TRUE);

ما أنا في عداد المفقودين؟

معلومات إضافية: لدي بالفعل اتصال هذا الإعداد للقيام طلب POST. أن يكمل بنجاح ولكن في وقت لاحق عندما أحاول إعادة الاتصال ويعود مرة أخرى إلى GET باستخدام setopts فوقه تزال ينتهي القيام وظيفة داخليا مع رؤوس وظيفة كاملة. المشكلة هي أنها تؤمن لها القيام GET ولكن ينتهي وضع رأس ظيفة بدون المعلمة محتوى طول وفشل الاتصال فيزا 411 خطأ.

هل كانت مفيدة؟

المحلول 3

وحلها: إن المشكلة تكمن هنا:

وأنا وضعت POST عن طريق كلا _CUSTOMREQUEST و_POST واستمر _CUSTOMREQUEST كما POST بينما تحولت _POST إلى _HTTPGET. تولى خادم رأس من _CUSTOMREQUEST أن تكون على حق واحد وعاد مع 411.

curl_setopt($curl_handle, CURLOPT_CUSTOMREQUEST, 'POST');

نصائح أخرى

تأكد من أنك وضع سلسلة الاستعلام الخاص بك في نهاية URL الخاص بك عند القيام طلب GET.

$qry_str = "?x=10&y=20";
$ch = curl_init();

// Set query data here with the URL
curl_setopt($ch, CURLOPT_URL, 'http://example.com/test.php' . $qry_str); 

curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_TIMEOUT, 3);
$content = trim(curl_exec($ch));
curl_close($ch);
print $content;
With a POST you pass the data via the CURLOPT_POSTFIELDS option instead 
of passing it in the CURLOPT__URL.
-------------------------------------------------------------------------

$qry_str = "x=10&y=20";
curl_setopt($ch, CURLOPT_URL, 'http://example.com/test.php');  
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_TIMEOUT, 3);

// Set request method to POST
curl_setopt($ch, CURLOPT_POST, 1);

// Set query data here with CURLOPT_POSTFIELDS
curl_setopt($ch, CURLOPT_POSTFIELDS, $qry_str);

$content = trim(curl_exec($ch));
curl_close($ch);
print $content;

ملحوظة من curl_setopt() مستندات للحصول على CURLOPT_HTTPGET (التشديد مضاف):

<اقتباس فقرة>   

[مجموعة CURLOPT_HTTPGET يساوي] TRUE إلى <م> إعادة تعيين على HTTP طريقة طلب GET.
  منذ GET هو الافتراضي، وهذا أمر ضروري إلا إذا تم تغيير طريقة الطلب.

وإضافة هذا قبل استدعاء curl_exec ($ curl_handle)

curl_setopt($curl_handle, CURLOPT_CUSTOMREQUEST, 'GET');

وطلب الضفيرة افتراضيا هو الحصول، لم يكن لديك لتعيين أي خيارات لتقديم طلب GET الضفيرة.

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top