欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  php教程

php的代码关于http请求的

程序员文章站 2022-03-24 18:05:45
...

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