• 25th September 2009 - By i-keng

    php-apache-tomcat

    สืบเนื่องจากผมประสบปัญหาการใช้งาน fsockopen ที่เคย Connect ไปหา Server ที่เป็น Apache แต่ ณ.บัดนาว ต้องใช้งาน fsockopen Connect ไปหา Server ที่เป็น Tomcat ความบรรลัยจึงบังเกิด …

    โดยปกติแล้วนั้น เมื่อ ใช้งาน fsockopen Connect ไปหา Server ที่เป็น Apache นั้น มันจะต้ด Header ด้วย \r\n ดังนี้..

    $ctrlf = "\r\n";
    $header = "POST /  HTTP/1.0".$ctrlf;
    $header .= "Content-type: application/x-www-form-urlencoded".$ctrlf;
    $header .= "Content-Length: ".$contentlength.$ctrlf;
    $fp = fsockopen("www.example.com", 80, $errno, $errstr, 30);
    if ($fp){
    fwrite($fp,$header.$ctrlf);
    while (!feof($fp)) {
    $tmp = fgets($fp, 200);
    $response .= $tmp;
    }
    } else {
    $response = "Connection failed : ".$errstr."(".$errno.")<br />\n";
    }
    

    แต่่ด้วย Code เดียวกันนี้ ถ้า ใช้งาน fsockopen ไปหา Server ที่เป็็น Tomcat นั้น Server จะ Close Connection ไปเลย เนื่องจาก
    ถ้าใช้งาน fsockopen ไปหา Server ที่เป็น Tomcat นั้น จะตัด Header ด้วย \n ตัวเดียวเท่านั้น..(ทำไมไม่เสือกทำให้เหมือนกันวะ!!)
    Code ด้านบน จึงใช้งานเชื่อมต่อไปหา Server ที่เป็น Tomcat ไม่ได้ สาดด!!

    เพราะฉะนั้นถ้าจะใช้งาน fsockopen ไปหา Server ที่เป็น Tomcat เราจึงต้องเปลี่ยนการตัด Header จาก \r\n เป็น \n ดังนี้

    $ctrlf = "\n";
    

    หรือมีอีก 1 วิธี คือใช้งาน cURL ไปซะเลย ซึ่งวิธีนี้จะ Post ไปได้ทั้ง Server ที่เป็น Apache และ Tomcat ครับ ดังนี้

    $ch = curl_init();
    curl_setopt($ch, CURLOPT_URL, "example.com");
    curl_setopt($ch, CURLOPT_HTTPHEADER,array("Content-type: application/x-www-form-urlencoded"));
    curl_setopt($ch, CURLOPT_POST, 1);
    curl_setopt($ch, CURLOPT_POSTFIELDS, "params=yourparameter");
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
    $response = curl_exec($ch);
    curl_close($ch);
    
  • 7 Responses to “การใช้งาน fsockopen เชื่อมต่อ ไปหา Server ที่เป็น Tomcat และ Apache”

    • noinarak on September 25, 2009

      งืมๆ…

    • rukawa on September 25, 2009

      เมพ ข่า ข่า

    • i-mard on September 25, 2009

      คิดว่ารู้คนเดียวไงวะ

    • i-keng on September 25, 2009

      i-mard :

      คิดว่ารู้คนเดียวไงวะ

      ไอ้ฟาย 55555
      ก็เพราะไอ้เรื่องพวกนี้แหละ ที่ทำให้กุมีตังกินเหล้าอะ 5555

    • Eartheration on September 25, 2009

      cURL is the best solutions

    • ijerry on September 25, 2009

      สมกับเป็นเวบราคา สองแสนสี่ จริงๆ

    • vittee on December 21, 2009

      ปกติ ก็ใช้ \n อยู่แล้วนี่นา เพราะ \r\n นะ มัน Windows Only

    Leave a Reply


PHVsPjxsaT48c3Ryb25nPndvb19hZF9mb290ZXI8L3N0cm9uZz4gLSBmYWxzZTwvbGk+PGxpPjxzdHJvbmc+d29vX2FkX2Zvb3Rlcl9hZHNlbnNlPC9zdHJvbmc+IC0gPC9saT48bGk+PHN0cm9uZz53b29fYWRfZm9vdGVyX2ltYWdlPC9zdHJvbmc+IC0gaHR0cDovL3d3dy53b290aGVtZXMuY29tL2Fkcy93b290aGVtZXMtNDY4eDYwLTIuZ2lmPC9saT48bGk+PHN0cm9uZz53b29fYWRfZm9vdGVyX3VybDwvc3Ryb25nPiAtIGh0dHA6Ly93d3cud29vdGhlbWVzLmNvbTwvbGk+PGxpPjxzdHJvbmc+d29vX2FsdF9zdHlsZXNoZWV0PC9zdHJvbmc+IC0gZGVmYXVsdC5jc3M8L2xpPjxsaT48c3Ryb25nPndvb19hdXRvX2ltZzwvc3Ryb25nPiAtIHRydWU8L2xpPjxsaT48c3Ryb25nPndvb19jYXRfY29sb3JfMTwvc3Ryb25nPiAtIDwvbGk+PGxpPjxzdHJvbmc+d29vX2NhdF9jb2xvcl8xMTwvc3Ryb25nPiAtIDwvbGk+PGxpPjxzdHJvbmc+d29vX2NhdF9jb2xvcl8xMjwvc3Ryb25nPiAtIDwvbGk+PGxpPjxzdHJvbmc+d29vX2NhdF9jb2xvcl8xODwvc3Ryb25nPiAtIDwvbGk+PGxpPjxzdHJvbmc+d29vX2NhdF9jb2xvcl82NTwvc3Ryb25nPiAtIDwvbGk+PGxpPjxzdHJvbmc+d29vX2NhdF9uYXZfMTwvc3Ryb25nPiAtIHRydWU8L2xpPjxsaT48c3Ryb25nPndvb19jYXRfbmF2XzExPC9zdHJvbmc+IC0gdHJ1ZTwvbGk+PGxpPjxzdHJvbmc+d29vX2NhdF9uYXZfMTI8L3N0cm9uZz4gLSB0cnVlPC9saT48bGk+PHN0cm9uZz53b29fY2F0X25hdl8xODwvc3Ryb25nPiAtIHRydWU8L2xpPjxsaT48c3Ryb25nPndvb19jYXRfbmF2XzY1PC9zdHJvbmc+IC0gdHJ1ZTwvbGk+PGxpPjxzdHJvbmc+d29vX2N1c3RvbV9jc3M8L3N0cm9uZz4gLSA8L2xpPjxsaT48c3Ryb25nPndvb19jdXN0b21fZmF2aWNvbjwvc3Ryb25nPiAtIDwvbGk+PGxpPjxzdHJvbmc+d29vX2ZlZWRidXJuZXJfdXJsPC9zdHJvbmc+IC0gPC9saT48bGk+PHN0cm9uZz53b29fZ29vZ2xlX2FuYWx5dGljczwvc3Ryb25nPiAtIDwvbGk+PGxpPjxzdHJvbmc+d29vX2xvZ288L3N0cm9uZz4gLSBodHRwOi8vd3d3Lmkta2VuZy5jb20vd3AtY29udGVudC91cGxvYWRzLzEtbG9nby5wbmc8L2xpPjxsaT48c3Ryb25nPndvb19tYW51YWw8L3N0cm9uZz4gLSBodHRwOi8vd3d3Lndvb3RoZW1lcy5jb20vc3VwcG9ydC90aGVtZS1kb2N1bWVudGF0aW9uL3dvb3RoZW1lLzwvbGk+PGxpPjxzdHJvbmc+d29vX3Bvc3Rfc2l6ZTwvc3Ryb25nPiAtIGZhbHNlPC9saT48bGk+PHN0cm9uZz53b29fcmVzaXplPC9zdHJvbmc+IC0gdHJ1ZTwvbGk+PGxpPjxzdHJvbmc+d29vX3Nob3J0bmFtZTwvc3Ryb25nPiAtIHdvbzwvbGk+PGxpPjxzdHJvbmc+d29vX3NpZGViYXJfYWRfaHJlZl8xPC9zdHJvbmc+IC0gaHR0cDovL3d3dy53b290aGVtZXMuY29tPC9saT48bGk+PHN0cm9uZz53b29fc2lkZWJhcl9hZF9ocmVmXzI8L3N0cm9uZz4gLSBodHRwOi8vd3d3Lndvb3RoZW1lcy5jb208L2xpPjxsaT48c3Ryb25nPndvb19zaWRlYmFyX2FkX2hyZWZfMzwvc3Ryb25nPiAtIGh0dHA6Ly93d3cud29vdGhlbWVzLmNvbTwvbGk+PGxpPjxzdHJvbmc+d29vX3NpZGViYXJfYWRfaHJlZl80PC9zdHJvbmc+IC0gaHR0cDovL3d3dy53b290aGVtZXMuY29tPC9saT48bGk+PHN0cm9uZz53b29fc2lkZWJhcl9hZF9pbWdfMTwvc3Ryb25nPiAtIGh0dHA6Ly93d3cud29vdGhlbWVzLmNvbS9hZHMvd29vdGhlbWVzLTEyNXgxMjUtMS5naWY8L2xpPjxsaT48c3Ryb25nPndvb19zaWRlYmFyX2FkX2ltZ18yPC9zdHJvbmc+IC0gaHR0cDovL3d3dy53b290aGVtZXMuY29tL2Fkcy93b290aGVtZXMtMTI1eDEyNS0yLmdpZjwvbGk+PGxpPjxzdHJvbmc+d29vX3NpZGViYXJfYWRfaW1nXzM8L3N0cm9uZz4gLSBodHRwOi8vd3d3Lndvb3RoZW1lcy5jb20vYWRzL3dvb3RoZW1lcy0xMjV4MTI1LTMuZ2lmPC9saT48bGk+PHN0cm9uZz53b29fc2lkZWJhcl9hZF9pbWdfNDwvc3Ryb25nPiAtIGh0dHA6Ly93d3cud29vdGhlbWVzLmNvbS9hZHMvd29vdGhlbWVzLTEyNXgxMjUtNC5naWY8L2xpPjxsaT48c3Ryb25nPndvb19zaW5nbGVfdGh1bWI8L3N0cm9uZz4gLSBmYWxzZTwvbGk+PGxpPjxzdHJvbmc+d29vX3RoZW1lbmFtZTwvc3Ryb25nPiAtIG15d2VibG9nPC9saT48bGk+PHN0cm9uZz53b29fdXBsb2Fkczwvc3Ryb25nPiAtIGh0dHA6Ly93d3cuaS1rZW5nLmNvbS93cC1jb250ZW50L3VwbG9hZHMvMS1sb2dvLnBuZzwvbGk+PC91bD4=