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请求,连接服务器:
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; } } }
相关文章推荐
- [Erlang 学习笔记] 通过 erlang 向服务器发送 http post 请求
- js_html_input中autocomplete="off"在chrom中失效的解决办法 使用JS模拟锚点跳转 js如何获取url参数 C#模拟httpwebrequest请求_向服务器模拟cookie发送 实习期学到的技术(一) LinqPad的变量比较功能 ASP.NET EF 使用LinqPad 快速学习Linq
- Java中通过方法创建一个http连接并请求(服务器间进行通信)
- C#实现通过HttpWebRequest发送POST请求实现网站自动登陆
- [导入]C#实现通过HttpWebRequest发送POST请求实现网站自动登陆
- Oracle学习笔记[4] - ORA-12514: TNS: 监听程序当前无法识别连接描述符中请求的服务
- C# 学习笔记 -- 第七天 连接到数据源
- C#实现通过HttpWebRequest发送POST请求实现网站自动登陆
- 采用HTTPClient通过代理连接服务器
- Ubuntu学习笔记:通过ssh远程登录服务器
- [Symbian] 通过 Socket 连接 HTTP 服务器
- HTTP学习笔记之二——Web服务器
- [C#]使用HttpWebRequest请求远端服务器时如何加载SSL证书
- SMTP 服务器要求安全连接或客户端未通过身份验证的各个解决方案(C#)
- C#学习笔记——(连接数据库)
- HttpWebRequest加载证书请求远端https服务器时 : 基础连接已经关闭: 无法与远程服务器建立信任关系
- 数据连接部分通过测试源代码-----java学习笔记之4
- httpclient4学习-模拟通过流的形式向Servlet发送请求及超时的控制
- C#实现通过HttpWebRequest发送POST请求实现网站自动登陆
- asp.net 发送 xml post请求和接收 xml post请求时出现(500) 内部服务器错误(WebClient学习笔记)