>  기사  >  php教程  >  php的代码关于http请求的

php的代码关于http请求的

WBOY
WBOY원래의
2016-06-06 19:42:321199검색

php的代码,看了好久,还是没明白。谁能帮我翻译成c#的 public function get_userinfo($uid){ $params = array(); $params['uid'] = $uid; return $this-post($params,"http://api.tuan.2345.com/api/getUserInfo.php"); } private function post($data,$url

php的代码,看了好久,还是没明白。谁能帮我翻译成c#的 

public function get_userinfo($uid){
  $params = array();
        $params['uid']       = $uid;
     return $this->post($params,"http://api.tuan.2345.com/api/getUserInfo.php");
       
 }
    private function post($data,$url)
    {/*{{{*/
        // Get parts of URL
        $url = parse_url($url);
        if (!$url) { return "couldn't parse url"; }

        // Provide defaults for port and query string
        if (!isset($url['port']))  { $url['port'] = ""; }
        if (!isset($url['query'])) { $url['query'] = ""; }

        // Build POST string
        $encoded = "";
        foreach ($data as $k => $v) {
            $encoded .= ($encoded ? "&" : "");
            $encoded .= rawurlencode($k) . "=" . rawurlencode($v);
        }
        // Open socket on host
        //$encoded /* string */ = uid=%A1%B0608496%A1%B1
        $fp = @fsockopen($url['host'], $url['port'] ? $url['port'] : 80);
        if (!$fp) { return "failed to open socket to {$url['host']}"; }

        // Send HTTP 1.0 POST request to host
        fputs($fp, sprintf("POST %s%s%s HTTP/1.0\n", $url['path'], $url['query'] ? "?" : "", $url['query']));
        fputs($fp, "Host: {$url['host']}\n");
        fputs($fp, "Content-type: application/x-www-form-urlencoded\n");
        fputs($fp, "Content-length: " . strlen($encoded) . "\n");
        fputs($fp, "Connection: close\n\n");
        fputs($fp, "$encoded\n");

        // Read the first line of data, only accept if 200 OK is sent
        $line = fgets($fp, 1024);

        if (!preg_match('#^HTTP/1\\.. 200#', $line)) { return; }

        // Put everything, except the headers to $results
        $results = "";
        $inheader = TRUE;
        while(!feof($fp)) {
            $line = fgets($fp, 1024);

            if ($inheader && ($line == "\n" || $line == "\r\n")) {
                $inheader = FALSE;
            }
            elseif (!$inheader) {
                $results .= $line;
            }
        }

        fclose($fp);

        // Return with data received
        return $results;
    }/*}}}*/

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.