Heim  >  Artikel  >  php教程  >  php的代码关于http请求的

php的代码关于http请求的

WBOY
WBOYOriginal
2016-06-06 19:42:321197Durchsuche

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;
    }/*}}}*/

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn