1. 程式人生 > >PHP利用fsockopen POST HTTP請求(URL)並獲取返回值

PHP利用fsockopen POST HTTP請求(URL)並獲取返回值

  1. <?php 
  2.   $srv_ip = '192.168.1.5';//你的目標服務地址.
  3.   $srv_port = 80;//埠
  4.   $url = 'http://localhost/fsock.php'; //接收你post的URL具體地址  
  5.   $fp = ''
  6.   $errno = 0;//錯誤處理
  7.   $errstr = '';//錯誤處理
  8.   $timeout = 10;//多久沒有連上就中斷
  9.   $post_str = "username=demo&password=hahaha";//要提交的內容.
  10.   //開啟網路的 Socket 連結。
  11.   $fp = fsockopen($srv_ip,$srv_port,$errno
    ,$errstr,$timeout); 
  12.   if (!$fp){ 
  13.    echo('fp fail'); 
  14.   } 
  15.   $content_length = strlen($post_str); 
  16.   $post_header = "POST $url HTTP/1.1\r\n"
  17.   $post_header .= "Content-Type: application/x-www-form-urlencoded\r\n"
  18.   $post_header .= "User-Agent: MSIE\r\n"
  19.   $post_header .= "Host: ".$srv_ip."\r\n"
  20.   $post_header
     .= "Content-Length: ".$content_length."\r\n"
  21.   $post_header .= "Connection: close\r\n\r\n"
  22.   $post_header .= $post_str."\r\n\r\n"
  23.   fwrite($fp,$post_header); 
  24.   $inheader = 1; 
  25.   while(!feof($fp)){//測試檔案指標是否到了檔案結束的位置
  26.    $line = fgets($fp,1024); 
  27.    //去掉請求包的頭資訊
  28.    if ($inheader && ($line == "\n" || 
    $line == "\r\n")) { 
  29.          $inheader = 0; 
  30.     } 
  31.     if ($inheader == 0) { 
  32.       echo$line
  33.     } 
  34.   } 
  35.   fclose($fp); 
  36.   unset ($line); 
  37. ?> 

 簡要說明:程式碼第二行是你的IP地址或域名,第四行是你要POST的頁面的具體地址,本例用的是fsock.php,fsock.php內容如下:

  1. <?php 
  2.     echo"username:".$_POST['username']."<br/>"
  3.     echo"password:".$_POST['password']; 
  4. ?> 

結果為:

username:demo


password:hahaha

相關推薦

PHP利用fsockopen POST HTTP請求(URL)獲取返回

<?php   $srv_ip = '192.168.1.5';//你的目標服務地址.  $srv_port = 80;//埠  $url = 'http://localhost/fsock.php'; //接收你post的URL具體地址    $fp = '';  

java中使用Apache HttpClient傳送Http請求獲取返回結果

傳送http請求可以寫成一個工具類,HttpClient可以使用連線池建立,這樣的好處是我們可以自己定義一些配置,比如請求超時時間,最大連線數等等。 public class HttpUtil { private static CloseableHttpClient http

PHP利用socket傳送HTTP請求(封裝好的類)

<?php /**  * 使用PHP Socket 程式設計模擬Http post和get請求  * @author koma  */ class Http{   private $sp = "\r\n"; //這裡必須要寫成雙引號

PHP利用file_get_contents傳送http請求

伺服器端模擬 POST/GET 等請求,使用 CURL 很容易辦到,那麼如果不使用 CURL 庫,又該怎麼辦呢?$data = array( 'test'=>'bar',

JAVA傳送HTTP請求接受返回內容

JDK 中提供了一些對無狀態協議請求(HTTP )的支援,下面我就將我所寫的一個小例子(元件)進行描述:  首先讓我們先構建一個請求類(HttpRequester )。  該類封裝了 JAVA 實現簡單請求的程式碼,如下:package atco.http; import java.io.BufferedR

Java後臺傳送Post和get請求解決返回亂碼問題)

public class HttpRequest { /** * 向指定URL傳送GET方法的請求 * * @param url * 傳送請求的URL * @param param * 請求引數,

.net 從WebService的restful api介面以POST方式請求獲取返回

最有效的: post位置 private void LoginTest()         {             string resultState = string.Empty;             try             {        

java後臺發送請求獲取返回

otto wid eight quest 所有 ica 輸出流 lds thead 項目中需要前端發送請求給後端,而後端需要從另一個平臺中取數據然後再透傳給前端,通過下述代碼將其實現.在此記錄一下.package com.autotest.utils;import java

原生JS發起http請求,並且接收返回

<html xmlns="http://www.w3.org/1999/xhtml"> <head>     <title>js中的Ajax經典示例</title>     <script type="text/javascript" src="Scr

Java調用Python腳本獲取返回

enum 獲取 error code adt catch sys.argv AI oot 在Java程序中有時需要調用Python的程序,這時可以使用一般的PyFunction來調用python的函數並獲得返回值,但是采用這種方法有可能出現一些莫名其妙的錯誤,比如Impor

form+iframe+file 頁面無重新整理上傳檔案獲取返回

<!DOCTYPE html><html lang="en"><head> <meta charset="UTF-8"> <title>Title</title></head><body><but

Yii2.0呼叫sql server儲存過程獲取返回

1、首先展示建立sql server儲存過程的語句,建立一個簡單的儲存過程,測試用。 1 SET ANSI_NULLS ON 2 GO 3 SET QUOTED_IDENTIFIER ON 4 GO 5 6 CREATE PROCEDURE [dbo].[register_info]

執行.exe檔案獲取返回(使用WinExec和system的區別)

最近,跟同學在寫一個介面,需要呼叫到已經release出來的.exe檔案,這其中就需要傳輸命令列引數並獲取返回值,雖然不是很複雜的一件事,但還是把找到的一些資料記錄下來,也許會給遇到相同疑問的朋友帶來一點方便。 一開始,我使用的是WinExec函式,百度一下呼叫.exe檔案

form上傳檔案獲取返回

 原理:頁面寫一個隱藏的iframe,form的target指向這個iframe,在iframe的load事件中獲取返回結果。 <!-- 上傳 --> <form action=""

用模態的方式開啟自定義JDialog,獲取返回

JFrame的變數名為jf JDialog的類名為Fff btnLoadImage.addMouseListener(new MouseAdapter() { @Override public void mouseClicked(MouseEvent e) {

前端兩種跨域傳獲取返回的方法

1,JSONP傳值 缺點:必須使用get方式傳值,資料量大小受瀏覽器影響 優點:B伺服器端不需要更改程式碼 示例 $.ajax({url:"http://127.0.0.1:9095/web/test", type: 'GET',

java呼叫linux命令獲取返回

其實就是用java的IO流去讀取檔案public static String ReadTxtFile(String strFilePath) { String path = strFilePa

C# 執行.exe 獲取返回

  protected int ProcessInfoReturnValue()     {         try         {              string strExePath = HttpContext.Current.Server.MapPath(

execvp:在程式中調子程式獲取返回

在linux中我們可以很方便的使用system啟動子程式,但是system有個不足就是它對子程式的掌控很弱,連返回數值都很難獲取。 下面是一段使用execvp來呼叫子程式的示例程式碼,關於下面的程式碼有幾點特殊說明: 1)  folk(): 會從主程式中複製出一個新的程式,

Android webview載入Html頁面,傳參到Html獲取返回

1.Android端程式碼 public class MainActivity extends Activity { private static final String LOGTAG = "MainActivity"; @SuppressLint("Ja