เรื่องการส่ง post request
Moderator: mindphp, ผู้ดูแลกระดาน
- oxygenyoyo
- PHP Hero Member
- โพสต์: 140
- ลงทะเบียนเมื่อ: 01/01/1970 7:00 am
เรื่องการส่ง post request
คือผมอยากทราบเกี่ยวกับวิธีส่งข้อมูลโดยใช้
opensock อ่ะครับ โดยส่งแบบที่มี header ไปด้วยอ่ะครับ
ปัญหาคือ ผมไม่รู้ว่า header ต้องใส่อะไรไปเท่าไรบ้างอ่ะครับ หลักๆที่ต้องส่งมีอะไรบ้างอ่ะครับ
แล้วส่งไปแล้วเป็น xml จะมีฟังก์ชั่นอะไรในการรับค่าที่มาจาก post โดยที่เราไม่ทราบตัวแปรบ้างอ่ะครับ
เคยทำแต่พวกส่งผ่านเพจแต่ ครั้งนี้ต้องติดต่อกับ ที่อื่น จนปัญญาเลยอ่ะครับรบกวนใครมีความรู้ บอกหน่อยนะครับ
opensock อ่ะครับ โดยส่งแบบที่มี header ไปด้วยอ่ะครับ
ปัญหาคือ ผมไม่รู้ว่า header ต้องใส่อะไรไปเท่าไรบ้างอ่ะครับ หลักๆที่ต้องส่งมีอะไรบ้างอ่ะครับ
แล้วส่งไปแล้วเป็น xml จะมีฟังก์ชั่นอะไรในการรับค่าที่มาจาก post โดยที่เราไม่ทราบตัวแปรบ้างอ่ะครับ
เคยทำแต่พวกส่งผ่านเพจแต่ ครั้งนี้ต้องติดต่อกับ ที่อื่น จนปัญญาเลยอ่ะครับรบกวนใครมีความรู้ บอกหน่อยนะครับ
- oxygenyoyo
- PHP Hero Member
- โพสต์: 140
- ลงทะเบียนเมื่อ: 01/01/1970 7:00 am
Re: เรื่องการส่ง post request
คุณ mindphp รบกวนถ้าดูแล้วบอกหน่อยครับว่าผมอธิบายไม่ละเอียดหรือว่าอย่างไรครับ
- mindphp
- ผู้ดูแลระบบ MindPHP
- โพสต์: 41404
- ลงทะเบียนเมื่อ: 22/09/2008 6:18 pm
- ติดต่อ:
Re: เรื่องการส่ง post request
ผมไม่รู้จัก opensock ครับ มันคืออะไร หรือครับ
ติดตาม VDO: http://www.youtube.com/c/MindphpVideoman
ติดตาม FB: https://www.facebook.com/pages/MindphpC ... 9517401606
หมวดแชร์ความรู้: https://www.mindphp.com/forums/viewforum.php?f=29
รับอบรม และพัฒนาระบบ: https://www.mindphp.com/forums/viewtopic.php?f=6&t=2042
ติดตาม FB: https://www.facebook.com/pages/MindphpC ... 9517401606
หมวดแชร์ความรู้: https://www.mindphp.com/forums/viewforum.php?f=29
รับอบรม และพัฒนาระบบ: https://www.mindphp.com/forums/viewtopic.php?f=6&t=2042
- oxygenyoyo
- PHP Hero Member
- โพสต์: 140
- ลงทะเบียนเมื่อ: 01/01/1970 7:00 am
Re: เรื่องการส่ง post request
โทษทีครับผมรีบพิมพ์
ฟังก์ชั่น fsockopen ครับ
เค้าให้เอกสารบอกว่าจะส่งมาอย่างนี้อ่ะครับ
HTTP POST
The standard format for the POST method is:
POST <URL> HTTP 1.x <CRLF> [message-body]
All content is URL encoded.
ฟังก์ชั่น fsockopen ครับ
เค้าให้เอกสารบอกว่าจะส่งมาอย่างนี้อ่ะครับ
HTTP POST
The standard format for the POST method is:
POST <URL> HTTP 1.x <CRLF> [message-body]
All content is URL encoded.
- mindphp
- ผู้ดูแลระบบ MindPHP
- โพสต์: 41404
- ลงทะเบียนเมื่อ: 22/09/2008 6:18 pm
- ติดต่อ:
Re: เรื่องการส่ง post request
php สามารถสั่ง หรือ ส่ง Post ค่าไปที่ Server อื่น ที่ผมทราบ เละเคยทดสอบ มี สอง วิธี คือ
1. ใช้ socket ก็ function ที่ คุณ oxygenyoyo บอกมาคือ ใช้ fsockopen
2. ใช้ Curl lib
โดยทั้งสองแบบ ตอนส่ง ต้องกำหนด ในส่วน ของ Header กับ body ไป ทำเลียนแบบ การส่ง จากหน้า page
ทั้งนี้ต้องเช็คค่า response ด้วย
1. ใช้ socket ก็ function ที่ คุณ oxygenyoyo บอกมาคือ ใช้ fsockopen
2. ใช้ Curl lib
โดยทั้งสองแบบ ตอนส่ง ต้องกำหนด ในส่วน ของ Header กับ body ไป ทำเลียนแบบ การส่ง จากหน้า page
ทั้งนี้ต้องเช็คค่า response ด้วย
ติดตาม VDO: http://www.youtube.com/c/MindphpVideoman
ติดตาม FB: https://www.facebook.com/pages/MindphpC ... 9517401606
หมวดแชร์ความรู้: https://www.mindphp.com/forums/viewforum.php?f=29
รับอบรม และพัฒนาระบบ: https://www.mindphp.com/forums/viewtopic.php?f=6&t=2042
ติดตาม FB: https://www.facebook.com/pages/MindphpC ... 9517401606
หมวดแชร์ความรู้: https://www.mindphp.com/forums/viewforum.php?f=29
รับอบรม และพัฒนาระบบ: https://www.mindphp.com/forums/viewtopic.php?f=6&t=2042
- oxygenyoyo
- PHP Hero Member
- โพสต์: 140
- ลงทะเบียนเมื่อ: 01/01/1970 7:00 am
Re: เรื่องการส่ง post request
ผมได้ทำการจองการส่งเป็นอย่างนี้ครับ
แต่ค่าที่กลับมาคือ
คำว่าไม่มีข้อมูลนั้นลองทำการเช็คดูว่ามีการส่งค่า post มาหรือเปล่าโดย var_dump($_POST);
แล้วเช็ค if ดูอ่ะครับ
ผมไม่รู้จะทำยังไงดีอ่ะครับ
โค้ด: เลือกทั้งหมด
$port = "80";
$path = "/dna/recive_feed_update_ucl.php";
$host = "localhost";
$method = "POST";
$contenttype = "text/xml";
$data = $data;
// script
if($port == 443)
$sslhost = "ssl://".$host;
else
$sslhost = $host;
$fp = fsockopen($sslhost, $port);
fputs($fp, "$method $path HTTP/1.1\r\n");
fputs($fp, "Host: $host\r\n");
fputs($fp, "Content-type: $contenttype\r\n");
fputs($fp, "Content-length: ".strlen($data)."\r\n");
fputs($fp, "Connection: close\r\n");
fputs($fp, "\r\n$data");
while (!feof($fp)) {
echo fgets($fp, 128);
}
fclose($fp);
โค้ด: เลือกทั้งหมด
HTTP/1.1 200 OK Date: Mon, 29 Sep 2008 04:37:25 GMT Server: Apache/2.2.3 (Win32) PHP/5.1.6 X-Powered-By: PHP/5.1.6 Content-Length: 13 Connection: close Content-Type: text/html ไม่มีข้อมูล
คำว่าไม่มีข้อมูลนั้นลองทำการเช็คดูว่ามีการส่งค่า post มาหรือเปล่าโดย var_dump($_POST);
แล้วเช็ค if ดูอ่ะครับ
ผมไม่รู้จะทำยังไงดีอ่ะครับ
- mindphp
- ผู้ดูแลระบบ MindPHP
- โพสต์: 41404
- ลงทะเบียนเมื่อ: 22/09/2008 6:18 pm
- ติดต่อ:
Re: เรื่องการส่ง post request
ลอง สั่ง Post ค่า ไปที่ Host ที่เป็น http ธรรมดาก่อน (ทำทั้งจำลองของตัวเอง และ up ไปที่ Host อื่น ที่ใช้ OS ต่าง กัน)
แล้วค่อย test กับ ssl ทั้ง สอง host อีกที
ปล. ต้องแน่ใจด้วยว่า ใช้อะไรเป็นตัวแยกระหว่าง Head กับ data ผมเห็นตอนนี้ใช้ "\r\n" ลองเป็น "\n" ด้วย ได้ผลยังไงบอกด้วยครับ
แล้วค่อย test กับ ssl ทั้ง สอง host อีกที
ปล. ต้องแน่ใจด้วยว่า ใช้อะไรเป็นตัวแยกระหว่าง Head กับ data ผมเห็นตอนนี้ใช้ "\r\n" ลองเป็น "\n" ด้วย ได้ผลยังไงบอกด้วยครับ
ติดตาม VDO: http://www.youtube.com/c/MindphpVideoman
ติดตาม FB: https://www.facebook.com/pages/MindphpC ... 9517401606
หมวดแชร์ความรู้: https://www.mindphp.com/forums/viewforum.php?f=29
รับอบรม และพัฒนาระบบ: https://www.mindphp.com/forums/viewtopic.php?f=6&t=2042
ติดตาม FB: https://www.facebook.com/pages/MindphpC ... 9517401606
หมวดแชร์ความรู้: https://www.mindphp.com/forums/viewforum.php?f=29
รับอบรม และพัฒนาระบบ: https://www.mindphp.com/forums/viewtopic.php?f=6&t=2042
- oxygenyoyo
- PHP Hero Member
- โพสต์: 140
- ลงทะเบียนเมื่อ: 01/01/1970 7:00 am
Re: เรื่องการส่ง post request
HTTP/1.1 200 OK Date: Mon, 29 Sep 2008 04:55:47 GMT Server: Apache/2.2.3 (Win32) PHP/5.1.6 X-Powered-By: PHP/5.1.6 Content-Length: 81 Connection: close Content-Type: text/html array(0) { } Array ( [1] => [value] => [0] => 0 [key] => 0 )
บรรทัดบนคือแก้จาก \r\n เป็น \n ก็ยังผลเหมือนเดิม แต่ test ในเครื่องครับ
HTTP/1.1 200 OK Content-Type: text/html Server: Microsoft-IIS/6.0 X-Powered-By: PHP/4.4.6 X-Powered-By: ASP.NET Date: Mon, 29 Sep 2008 05:11:10 GMT Connection: close array(0) { } Array ( [1] => [value] => [0] => 0 [key] => 0 )
บรรทัดบนคือแก้จาก \r\n เป็น \n แต่ test ที่โฮสครับ
ส่วนเรื่อง ssl ไม่ต้องสนใจก็ได้ครับผมตอนนี้ก็ต้องการแบบธรรมดาให้ส่งค่าได้ก่อน
บรรทัดบนคือแก้จาก \r\n เป็น \n ก็ยังผลเหมือนเดิม แต่ test ในเครื่องครับ
HTTP/1.1 200 OK Content-Type: text/html Server: Microsoft-IIS/6.0 X-Powered-By: PHP/4.4.6 X-Powered-By: ASP.NET Date: Mon, 29 Sep 2008 05:11:10 GMT Connection: close array(0) { } Array ( [1] => [value] => [0] => 0 [key] => 0 )
บรรทัดบนคือแก้จาก \r\n เป็น \n แต่ test ที่โฮสครับ
ส่วนเรื่อง ssl ไม่ต้องสนใจก็ได้ครับผมตอนนี้ก็ต้องการแบบธรรมดาให้ส่งค่าได้ก่อน
- mindphp
- ผู้ดูแลระบบ MindPHP
- โพสต์: 41404
- ลงทะเบียนเมื่อ: 22/09/2008 6:18 pm
- ติดต่อ:
Re: เรื่องการส่ง post request
เรื่อง Socket ลองอ่านดูตามบทความนี้ครับ ละเอียดดีทีเดียว
http://www.devshed.com/c/a/PHP/Socket-P ... -With-PHP/
ลองสร้างหน้า form ธรรมดา ขึ้นมา แล้วกำหนด field ใส่ข้อมูลลงไป เลียนแบบการ POST ด้วย Socket ให้ POST จาก form ดูว่า response data ถูกต้องหรือเปล่า
http://www.devshed.com/c/a/PHP/Socket-P ... -With-PHP/
ลองสร้างหน้า form ธรรมดา ขึ้นมา แล้วกำหนด field ใส่ข้อมูลลงไป เลียนแบบการ POST ด้วย Socket ให้ POST จาก form ดูว่า response data ถูกต้องหรือเปล่า
ติดตาม VDO: http://www.youtube.com/c/MindphpVideoman
ติดตาม FB: https://www.facebook.com/pages/MindphpC ... 9517401606
หมวดแชร์ความรู้: https://www.mindphp.com/forums/viewforum.php?f=29
รับอบรม และพัฒนาระบบ: https://www.mindphp.com/forums/viewtopic.php?f=6&t=2042
ติดตาม FB: https://www.facebook.com/pages/MindphpC ... 9517401606
หมวดแชร์ความรู้: https://www.mindphp.com/forums/viewforum.php?f=29
รับอบรม และพัฒนาระบบ: https://www.mindphp.com/forums/viewtopic.php?f=6&t=2042
- oxygenyoyo
- PHP Hero Member
- โพสต์: 140
- ลงทะเบียนเมื่อ: 01/01/1970 7:00 am
Re: เรื่องการส่ง post request
HTTP/1.1 200 OK
Date: Mon, 29 Sep 2008 06:44:30 GMT
Server: Apache/2.2.3 (Win32) PHP/5.1.6
X-Powered-By: PHP/5.1.6
Content-Length: 193
Connection: close
Content-Type: text/html
Array
(
[1] => <?xml version="1.0" encode="UTF-8"?><status>T</status>
[value] => <?xml version="1.0" encode="UTF-8"?><status>T</status>
[0] => 0
[key] => 0
)
OK INSERT SUCCESS
ได้แล้วครับคุณ mindphp ถ้าอย่างนี้ถ้าเค้าส่งมาผมก็สามารถรับได้แล้วอ่ะสิครับ
Date: Mon, 29 Sep 2008 06:44:30 GMT
Server: Apache/2.2.3 (Win32) PHP/5.1.6
X-Powered-By: PHP/5.1.6
Content-Length: 193
Connection: close
Content-Type: text/html
Array
(
[1] => <?xml version="1.0" encode="UTF-8"?><status>T</status>
[value] => <?xml version="1.0" encode="UTF-8"?><status>T</status>
[0] => 0
[key] => 0
)
OK INSERT SUCCESS
ได้แล้วครับคุณ mindphp ถ้าอย่างนี้ถ้าเค้าส่งมาผมก็สามารถรับได้แล้วอ่ะสิครับ
-
- Similar Topics
- ตอบกลับ
- แสดง
- โพสต์ล่าสุด
-
-
โพสต์ใหม่ แก้ปัญหา ajax POST request ถูก Block จาก cloudflare
โดย mindphp » 08/04/2022 7:23 am » ใน JavaScript & jQuery Ajax & Node.JS - 1 ตอบกลับ
- 1294 แสดง
-
โพสต์ล่าสุด โดย mindphp
11/04/2022 3:39 pm
-
-
-
โพสต์ใหม่ แก้ปัญหา Plugin WP Post Rating แชร์ Post แล้วมี %20 ขึ้นมาแทนช่อง
โดย mindphp » 29/10/2022 8:21 pm » ใน Wordpress Developing Knowledge - 0 ตอบกลับ
- 1100 แสดง
-
โพสต์ล่าสุด โดย mindphp
29/10/2022 8:21 pm
-
-
-
โพสต์ใหม่ Deposit money into account with Thailand Post by Bank@post service
โดย numtan5839 » 18/11/2019 11:42 am » ใน English Language - 0 ตอบกลับ
- 1775 แสดง
-
โพสต์ล่าสุด โดย numtan5839
18/11/2019 11:42 am
-
-
-
โพสต์ใหม่ สรุปการใช้ การใช้งาน POST - Method สร้าง API ให้เรียกผ่านการ Post
โดย fonfonn » 22/07/2022 7:00 pm » ใน Python Knowledge - 1 ตอบกลับ
- 768 แสดง
-
โพสต์ล่าสุด โดย บุคคลทั่วไป
23/07/2022 2:01 pm
-
ผู้ใช้งานขณะนี้
สมาชิกกำลังดูบอร์ดนี้: ไม่มีสมาชิกใหม่ และบุคลทั่วไป 107