php的代码关于http请求的
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;
}/*}}}*/