当前位置:   article > 正文

C# 使用HttpWebRequest 实现简单的get和post请求

c# http get

C# 使用HttpWebRequest 实现简单的get和post请求和服务器进行交互

刚刚学会的,用的也是最简单的方法,实现了一个登陆功能

下面记录一下我自己理解

首先我们要实现的是模拟浏览器的登陆功能,那么就要知道浏览器是怎么和服务器进行交互的。

这里为了方便,我自己搭建了一个只有登陆功能的小页面

C# 使用HttpWebRequest 实现简单的get和post请求

我这里用的是Firefox浏览器,按F12就可以打开下面的监视的工具

点击登陆之后,发现浏览器是通过POST请求向浏览器发送登陆请求

C# 使用HttpWebRequest 实现简单的get和post请求

查看参数,就可以看到,我们在登陆的时候填的账号和密码。

C# 使用HttpWebRequest 实现简单的get和post请求


好了,我们了解了浏览器的请求过程后,下面就通过代码来模拟浏览器,来实现一个登陆过程


  1. using System;
  2. using System.Collections.Generic;
  3. using System.ComponentModel;
  4. using System.Data;
  5. using System.Drawing;
  6. using System.Linq;
  7. using System.Text;
  8. using System.Windows.Forms;
  9. using System.IO;
  10. using System.Net;
  11. using System.Text;
  12. namespace WindowsFormsApplication1
  13. {
  14.     public partial class Form1 : Form
  15.     {
  16.         public Form1()
  17.         {
  18.             InitializeComponent();
  19.         }
  20.         private void button1_Click(object sender, EventArgs e)//模拟GET请求
  21.         {
  22.             String url = "http://。。。。。/LoginTest/login?username=admin&password=123456";//请求的链接,为了方便直接填上了后面的参数
  23.             HttpWebRequest request = (HttpWebRequest)WebRequest.Create(url);
  24.             request.Method = "GET";
  25.             request.Accept = "*/*";
  26.             HttpWebResponse response = (HttpWebResponse)request.GetResponse();
  27.             Stream getStream = response.GetResponseStream();
  28.             StreamReader streamreader = new StreamReader(getStream);
  29.             String result = streamreader.ReadToEnd();          
  30.             label1.Text = result;
  31.         }
  32.         private void button2_Click(object sender, EventArgs e)
  33.         {
  34.             String url = "http://。。。。。/LoginTest/login";
  35.             HttpWebRequest req = (HttpWebRequest)HttpWebRequest.Create(url);
  36.             req.Method = "POST";
  37.             req.ContentType = "application/x-www-form-urlencoded";//设置对应的ContentType
  38.             String postdata = "username=admin&password=123456";//post请求时的参数          
  39.             StreamWriter writer = new StreamWriter(req.GetRequestStream());
  40.             writer.Write(postdata);
  41.             writer.Flush();
  42.             HttpWebResponse response = (HttpWebResponse)req.GetResponse();//获取服务器返回的结果
  43.             Stream getStream = response.GetResponseStream();
  44.             StreamReader streamreader = new StreamReader(getStream);
  45.             String result = streamreader.ReadToEnd();
  46.             label2.Text = result;
  47.         }
  48.     }
  49. }

C# 使用HttpWebRequest 实现简单的get和post请求

C# 使用HttpWebRequest 实现简单的get和post请求


服务器端用的是Java写的动态网站使用Tomcat部署

创建一个LoginServlet类继承自HtteServlet


  1. package login;
  2. import java.io.IOException;
  3. import java.io.PrintWriter;
  4. import javax.servlet.ServletException;
  5. import javax.servlet.http.HttpServlet;
  6. import javax.servlet.http.HttpServletRequest;
  7. import javax.servlet.http.HttpServletResponse;
  8. import org.apache.coyote.Response;
  9. public class LoginServlet extends HttpServlet{
  10. @Override
  11. protected void doGet(HttpServletRequest req, HttpServletResponse resp)
  12. throws ServletException, IOException {
  13. resp.setContentType("text/html;charset=UTF-8");
  14. String username=req.getParameter("username");
  15. String password=req.getParameter("password");
  16. String result="fail";
  17. if(username.equals("admin") && password.equals("123456")){
  18. result="成功";
  19. }
  20. PrintWriter outPrintWriter=resp.getWriter();
  21. outPrintWriter.write(result);
  22. }
  23. @Override
  24. protected void doPost(HttpServletRequest req, HttpServletResponse resp)
  25. throws ServletException, IOException {
  26. doGet(req, resp);
  27. }
  28. }


声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/AllinToyou/article/detail/259583
推荐阅读
相关标签
  

闽ICP备14008679号