您的位置:首页 > 理论基础 > 计算机网络

C#学习笔记之通过http请求连接服务器

2017-09-08 15:58 316 查看
服务端使用java实现,首先创建一个Servlet,在Tomcat上发布,接受客户端的连接:

package com.http.demo;

import java.io.IOException;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

public class Demo1 extends HttpServlet {

public void doGet(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {

request.setCharacterEncoding("UTF-8");
response.setContentType("text/html, charset=utf-8");

// 获取请求数据
String username = request.getParameter("username");
String password = request.getParameter("password");
System.out.println(username + " -- " + password);

// 输出响应结果
response.getOutputStream().write("连接成功!".getBytes());
}

public void doPost(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
doGet(request, response);
}

}


然后编写C#程序发送http请求,连接服务器:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Net;
using System.IO;

namespace ConsoleApplication1
{
class Program
{
static void Main(string[] args)
{
string requestData = "username=admin&password=123";                 // 发送的数据
string url = "http://localhost:8080/HttpServerDemo/servlet/Demo1";  // 服务器地址

//string result = HttpGet(url, requestData);    // GET请求
string result = HttpPost(url, requestData);     // POST请求

Console.WriteLine("响应结果:" + result);
Console.ReadKey();
}

private static String HttpGet(string url, string requestData)
{
// 实例化请求对象
HttpWebRequest request = (HttpWebRequest)WebRequest.Create(url + "?" + requestData);
request.Method = "GET";
request.ContentType = "text/html; charset=UTF-8";

// 实例化响应对象,获取响应信息
HttpWebResponse response = (HttpWebResponse)request.GetResponse();
Stream responseStream = response.GetResponseStream();
StreamReader sReader = new StreamReader(responseStream, Encoding.Default);
String result = sReader.ReadToEnd();
sReader.Close();
responseStream.Close();

return result;
}

private static String HttpPost(string url, string requestData)
{
// 实例化请求对象
HttpWebRequest request = (HttpWebRequest)WebRequest.Create(url);
request.Method = "POST";
request.ContentType = "application/x-www-form-urlencoded";
request.ContentLength = requestData.Length;

// 发送请求数据
Stream requestStream = request.GetRequestStream();
StreamWriter sWriter = new StreamWriter(requestStream, Encoding.Default);
sWriter.Write(requestData);
sWriter.Flush();
sWriter.Close();
requestStream.Close();

// 实例化响应对象,获取响应信息
HttpWebResponse response = (HttpWebResponse)request.GetResponse();
Stream responseStream = response.GetResponseStream();
StreamReader sReader = new StreamReader(responseStream, Encoding.Default);
String result = sReader.ReadToEnd();
sReader.Close();
responseStream.Close();

return result;
}
}
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐