当前位置:首页 » 网页前端 » web页面的请求方法
扩展阅读
webinf下怎么引入js 2023-08-31 21:54:13
堡垒机怎么打开web 2023-08-31 21:54:11

web页面的请求方法

发布时间: 2022-08-09 18:56:37

① httpwebrequest默认是什么方式请求

HttpWebRequest req = (HttpWebRequest) HttpWebRequest.Create( "http://www.jb51.net?hl=zh-CN" );
req.Method = "GET";
using (WebResponse wr = req.GetResponse())
{
//在这里对接收到的页面内容进行处理
}

使用 GET 方式提交中文数据。
GET 方式通过在网络地址中附加参数来完成数据提交,对于中文的编码,常用的有 gb2312 和 utf8 两种。
用 gb2312 方式编码访问的程序代码如下:

复制代码代码如下:
Encoding myEncoding = Encoding.GetEncoding("gb2312");
string address = "http://www.jb51.net/?" + HttpUtility.UrlEncode("参数一", myEncoding) + "=" + HttpUtility.UrlEncode("值一", myEncoding);
HttpWebRequest req = (HttpWebRequest)HttpWebRequest.Create(address);
req.Method = "GET";
using (WebResponse wr = req.GetResponse())
{
//在这里对接收到的页面内容进行处理
}

在上面的程序代码中,我们以 GET 方式访问了网址 http://www.jb51.net ,传递了参数“参数一=值一”,由于无法告知对方提交数据的编码类型,所以编码方式要以对方的网站为标准。

POST 方式:

POST 方式通过在页面内容中填写参数的方法来完成数据的提交,参数的格式和 GET 方式一样,是类似于 hl=zh-CN&newwindow=1 这样的结构。
程序代码如下:

复制代码代码如下:
string param = "hl=zh-CN&newwindow=1";
byte[] bs = Encoding.ASCII.GetBytes(param);
HttpWebRequest req = (HttpWebRequest) HttpWebRequest.Create( "http://www.jb51.net/" );
req.Method = "POST";
req.ContentType = "application/x-www-form-urlencoded";
req.ContentLength = bs.Length;
using (Stream reqStream = req.GetRequestStream())
{
reqStream.Write(bs, 0, bs.Length);
}
using (WebResponse wr = req.GetResponse())
{
//在这里对接收到的页面内容进行处理
}

在上面的代码中,我们访问了 http://www.jb51.net 的网址,分别以 GET 和 POST 方式提交了数据,并接收了返回的页面内容。然而,如果提交的参数中含有中文,那么这样的处理是不够的,需要对其进行编码,让对方网站能够识别。
使用 POST 方式提交中文数据
POST 方式通过在页面内容中填写参数的方法来完成数据的提交,由于提交的参数中可以说明使用的编码方式,所以理论上能获得更大的兼容性。
用 gb2312 方式编码访问的程序代码如下:

复制代码代码如下:
Encoding myEncoding = Encoding.GetEncoding("gb2312");
string param = HttpUtility.UrlEncode("参数一", myEncoding) + "=" + HttpUtility.UrlEncode("值一", myEncoding) + "&" + HttpUtility.UrlEncode("参数二", myEncoding) + "=" + HttpUtility.UrlEncode("值二", myEncoding);
byte[] postBytes = Encoding.ASCII.GetBytes(param);
HttpWebRequest req = (HttpWebRequest) HttpWebRequest.Create( "http://www.jb51.net/" );
req.Method = "POST";
req.ContentType = "application/x-www-form-urlencoded;charset=gb2312";
req.ContentLength = postBytes.Length;
using (Stream reqStream = req.GetRequestStream())
{
reqStream.Write(bs, 0, bs.Length);
}
using (WebResponse wr = req.GetResponse())
{
//在这里对接收到的页面内容进行处理
}

从上面的代码可以看出, POST 中文数据的时候,先使用 UrlEncode 方法将中文字符转换为编码后的 ASCII 码,然后提交到服务器,提交的时候可以说明编码的方式,用来使对方服务器能够正确的解析。
用C#语言写的关于HttpWebRequest 类的使用方法

复制代码代码如下:
using System;
using System.Collections.Generic;
using System.IO;
using System.Net;
using System.Text;
namespace HttpWeb
{
/// <summary>
/// Http操作类
/// </summary>
public static class httptest
{
/// <summary>
/// 获取网址HTML
/// </summary>
/// <param name="URL">网址 </param>
/// <returns> </returns>
public static string GetHtml(string URL)
{
WebRequest wrt;
wrt = WebRequest.Create(URL);
wrt.Credentials = CredentialCache.DefaultCredentials;
WebResponse wrp;
wrp = wrt.GetResponse();
string reader = new StreamReader(wrp.GetResponseStream(), Encoding.GetEncoding("gb2312")).ReadToEnd();
try
{
wrt.GetResponse().Close();
}
catch (WebException ex)
{
throw ex;
}
return reader;
}
/// <summary>
/// 获取网站cookie
/// </summary>
/// <param name="URL">网址 </param>
/// <param name="cookie">cookie </param>
/// <returns> </returns>
public static string GetHtml(string URL, out string cookie)
{
WebRequest wrt;
wrt = WebRequest.Create(URL);
wrt.Credentials = CredentialCache.DefaultCredentials;
WebResponse wrp;
wrp = wrt.GetResponse();

string html = new StreamReader(wrp.GetResponseStream(), Encoding.GetEncoding("gb2312")).ReadToEnd();
try
{
wrt.GetResponse().Close();
}
catch (WebException ex)
{
throw ex;
}
cookie = wrp.Headers.Get("Set-Cookie");
return html;
}
public static string GetHtml(string URL, string postData, string cookie, out string header, string server)
{
return GetHtml(server, URL, postData, cookie, out header);
}
public static string GetHtml(string server, string URL, string postData, string cookie, out string header)
{
byte[] byteRequest = Encoding.GetEncoding("gb2312").GetBytes(postData);
return GetHtml(server, URL, byteRequest, cookie, out header);
}
public static string GetHtml(string server, string URL, byte[] byteRequest, string cookie, out string header)
{
byte[] bytes = GetHtmlByBytes(server, URL, byteRequest, cookie, out header);
Stream getStream = new MemoryStream(bytes);
StreamReader streamReader = new StreamReader(getStream, Encoding.GetEncoding("gb2312"));
string getString = streamReader.ReadToEnd();
streamReader.Close();
getStream.Close();
return getString;
}
/// <summary>
/// Post模式浏览
/// </summary>
/// <param name="server">服务器地址 </param>
/// <param name="URL">网址 </param>
/// <param name="byteRequest">流 </param>
/// <param name="cookie">cookie </param>
/// <param name="header">句柄 </param>
/// <returns> </returns>
public static byte[] GetHtmlByBytes(string server, string URL, byte[] byteRequest, string cookie, out string header)
{
long contentLength;
HttpWebRequest httpWebRequest;
HttpWebResponse webResponse;
Stream getStream;
httpWebRequest = (HttpWebRequest)HttpWebRequest.Create(URL);
CookieContainer co = new CookieContainer();
co.SetCookies(new Uri(server), cookie);
httpWebRequest.CookieContainer = co;
httpWebRequest.ContentType = "application/x-www-form-urlencoded";
httpWebRequest.Accept =
"image/gif, image/x-xbitmap, image/jpeg, image/pjpeg, application/x-shockwave-flash, application/vnd.ms-excel, application/vnd.ms-powerpoint, application/msword, */*";
httpWebRequest.Referer = server;
httpWebRequest.UserAgent =
"Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1; Maxthon; .NET CLR 1.1.4322)";
httpWebRequest.Method = "Post";
httpWebRequest.ContentLength = byteRequest.Length;
Stream stream;
stream = httpWebRequest.GetRequestStream();
stream.Write(byteRequest, 0, byteRequest.Length);
stream.Close();
webResponse = (HttpWebResponse)httpWebRequest.GetResponse();
header = webResponse.Headers.ToString();
getStream = webResponse.GetResponseStream();
contentLength = webResponse.ContentLength;
byte[] outBytes = new byte[contentLength];
outBytes = ReadFully(getStream);
getStream.Close();
return outBytes;
}
public static byte[] ReadFully(Stream stream)
{
byte[] buffer = new byte[128];
using (MemoryStream ms = new MemoryStream())
{
while (true)
{
int read = stream.Read(buffer, 0, buffer.Length);
if (read <= 0)
return ms.ToArray();
ms.Write(buffer, 0, read);
}
}
}
/// <summary>
/// Get模式
/// </summary>
/// <param name="URL">网址 </param>
/// <param name="cookie">cookies </param>
/// <param name="header">句柄 </param>
/// <param name="server">服务器 </param>
/// <param name="val">服务器 </param>
/// <returns> </returns>
public static string GetHtml(string URL, string cookie, out string header, string server)
{
return GetHtml(URL, cookie, out header, server, "");
}
/// <summary>
/// Get模式浏览
/// </summary>
/// <param name="URL">Get网址 </param>
/// <param name="cookie">cookie </param>
/// <param name="header">句柄 </param>
/// <param name="server">服务器地址 </param>
/// <param name="val"> </param>
/// <returns> </returns>
public static string GetHtml(string URL, string cookie, out string header, string server, string val)
{
HttpWebRequest httpWebRequest;
HttpWebResponse webResponse;
Stream getStream;
StreamReader streamReader;
string getString = "";
httpWebRequest = (HttpWebRequest)HttpWebRequest.Create(URL);
httpWebRequest.Accept = "*/*";
httpWebRequest.Referer = server;
CookieContainer co = new CookieContainer();
co.SetCookies(new Uri(server), cookie);
httpWebRequest.CookieContainer = co;
httpWebRequest.UserAgent =
"Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1; Maxthon; .NET CLR 1.1.4322)";
httpWebRequest.Method = "GET";
webResponse = (HttpWebResponse)httpWebRequest.GetResponse();
header = webResponse.Headers.ToString();
getStream = webResponse.GetResponseStream();
streamReader = new StreamReader(getStream, Encoding.GetEncoding("gb2312"));
getString = streamReader.ReadToEnd();
streamReader.Close();
getStream.Close();
return getString;
}
}
}

② Web客户(即浏览器)如何从web服务器请求Web页面,以及服务器如何把Web页面传送给客户

好像不能。

③ 网页请求有多少种错误

HTTP是超文本传输协议,其定义了客户端与服务器端之间文本传输的规范。HTTP默认使用80端口,这个端口指的是服务端的端口,而客户端使用的端口是动态分配的。当我们没有指定端口访问时,浏览器会默认帮我们添加80端口。我们也可以自己指定访问端口如:http://www.ip138.com:80。 需要注意的是,现在大多数访问都使用了HTTPS协议,而HTTPS的默认端口为443,如果使用80端口访问HTTPS协议的服务器可能会被拒绝。

主要特点

1、无连接

无连接的含义是限制每次连接只处理一个请求。服务器处理完客户的请求,并收到客户的应答后,即断开连接。采用这种方式可以节省传输时间。

2、无状态

HTTP协议是无状态协议。无状态是指协议对于事务处理没有记忆能力。缺少状态意味着如果后续处理需要前面的信息,则它必须重传,这样可能导致每次连接传送的数据量增大。另一方面,在服务器不需要先前信息时它的应答就较快。

3、简单快速

客户向服务器请求服务时,只需传送请求方法和路径。请求方法常用的有GET、HEAD、POST。每种方法规定了客户与服务器联系的类型不同。由于HTTP协议简单,使得HTTP服务器的程序规模小,因而通信速度很快。

4、灵活

HTTP允许传输任意类型的数据对象。正在传输的类型由Content-Type加以标记。

5、支持B/S及C/S模式

④ Web页面中如何利用锚点发送http请求

#后面不跳转 只做JAVASCRIPT脚本调用

⑤ javaweb项目中,如何在jsp页面发出一个请求,然后到java代码中每隔1秒访问一次数据库的方法,要详解,谢谢

可以写个for循环 然后每次Thread.sleep(1000);这样就每隔1s执行1次

⑥ 简述ASP.NET页面与WEB服务器的交互过程

用户请求页面。(使用 HTTP GET 方法请求页面。)页面第一次运行,执行初步处理(如果您已通过编程让它执行初步处理)。

页面将标记动态呈现到浏览器,用户看到的网页类似于其他任何网页。

用户键入信息或从可用选项中进行选择,然后单击按钮。(如果用户单击链接而不是按钮,页面可能仅仅定位到另一页,而第一页不会被进一步处理。)

页面发送到 Web 服务器。(浏览器执行 HTTP POST 方法,该方法在 ASP.NET 中称为“回发”。)更明确地说,页面发送回其自身。例如,如果用户正在使用 Default.aspx 页面,则单击该页上的某个按钮可以将该页发送回服务器,发送的目标则是 Default.aspx。

在 Web 服务器上,该页再次运行。并且可在页上使用用户键入或选择的信息。

页面执行您通过编程所要实行的操作。

页面将其自身呈现回浏览器。

与桌面应用程序中的窗体不同,ASP.NET 网页在用户使用窗体时不会启动或运行,并且仅当用户单击“关闭”按钮时才会卸载。这是由于 Web 具有断开连接的天性。浏览器从 Web 服务器请求页面时,浏览器和服务器相连的时间仅够处理请求。Web 服务器将页面呈现到浏览器之后,连接即终止。如果浏览器对同一 Web 服务器发出另一个请求,则即使是对同一个页面发出的,该请求仍会作为新请求来处理。

Web 这种断开连接的天性决定了 ASP.NET 页的运行方式。用户请求 ASP.NET 网页时,将创建该页的新实例。该页执行其处理,将标记呈现到浏览器,然后该页被丢弃。如果用户单击按钮以执行回发,将创建该页的新实例;该页执行其处理,然后再次被丢弃。这样,每个回发和往返行程都会导致生成该页的一个新实例。

⑦ 请求web服务器数据时有多种方法,其中哪种方法功能最全

如果数据量很多,比如存取“很多人”的留言和其他相关信息。这样xml标签代码量自然会很多,逐个遍历所用的时间肯定较长,所以这个时候数据库就能快点,对于频繁操作数据源的,自然使用数据库的连接池功能。

⑧ c# httpwebrequest循环请求网页

两种方法都可以~~
利于 HttpWebRquest 返回的是字符串~~ 里面是该网页的源码~~ 要想到的它里面的超级链接不难~ 可以利于正则表达式分析并读取~~ 当然,你也可以自己判断~~

而使用 WebBrowser 可能更直观一些~~ 这时候需要进行 DOM 操作了~~

究竟使用哪种方法,就看你更熟悉哪个了。。

而至于要实现循环请求~~~ 则可以使用递归技术~~

⑨ 如何通过浏览器发送webservice请求

方法/步骤 在进行webservice客户端开发时,首先需要获取到服务端的webservice服务地址,根据服务地址以及通讯协议创建对应的客户端请求。如果对方提供的是一个服务地址,可以通过浏览器将复制粘贴进去。从页面上可以看出这是一个基于axis框架生成的一个webservice服务端。 在服务端地址后面加上“?wsdl”(注意是英文的问号),在页面中就可以看到服务端公布出来的各种服务、命名空间等其他信息。通过element可以看出,服务端公布出来两个方法:sayHello和sayNo。后面带有Response的说明是服务端返回的信息。 根据服务端提供的地址,在soapUI工具上创建webservice客户端请求。打开soapUI软件,在软件的左上角点击file文件,在弹出页面中有三种方式,一般新增的使用第一种new soapUI project新建一个soapUI项目。 点击新建soapUI项目之后,在弹出框中,需要输入服务端的地址(注意地址后面要加上"?wsdl"英文符号),Project Name项目名称可以有汉字,能够自己区分是哪个服务端的项目即可。其他的值选择默认即可,不需要勾选其他选项,点击Ok即可创建好项目。 服务端方法公布展示。通过服务端的地址,创建一个soap项目之后,soapUI就自动解析服务端提供的方法接口。从示例中可以看出这个服务对外提供了两个服务接口sayHello和sayNo。 点开其中的Request 1可以看到这个请求的报文信息以及这个请求需要的参数和参数类型。消息的报文头信息和命名空间已经通过soapUI工具自动生成,在发送报文的时候只需要填写必要的入参即可。 模拟客户端发送请求。在客户端输入需要的参数之后,点击左上角的“发送”按钮就可以模拟客户端请求发送。发送完成后,在右侧就可以看到服务端返回的信息,这就是整个消息发送请求和返回的全流程。 wsdl文件方式的处理。对于有些服务端提供的不是类似上面的地址服务器,而是一些wsdl文件的方式。打开wsdl文件可以看到和在浏览器中打开服务端地址展示的内容相同,只是提供的方式不同而已。文件的格式可以是xml或者是wsdl的格式。 通过wsdl文件内容创建project。点击File文件下面的“creates a new soapUI project“。通过选择一个文件的方式,就可以根据wsdl报文内容的方式创建客户端。 点击右侧的Browse浏览按钮,找到wsdl文件文件,这个文件的后缀可以是wsdl的方式也可以是xml的方式,然后点击打开即可将文件导入到soapUI中,和服务地址类似,输入项目的名称,其他默认,点击OK即可创建成功。 MyService是通过服务地址的方式创建,MyService2222是通过wsdl文件内容的方式创建的。通过比对可以看出,这两种方式创建的客户端是一致的。同样解析出sayHello和sayNo服务。 END 注意事项 服务端地址后面添加的“?wsdl”必须要求是英文的问号 通过文件(后缀wsdl或者xml)的方式创建的时候,要保障文件头没有多余的空格空行。

⑩ 在AIOHTTP中,向web服务发送http请求。有哪三种参

URL参数,表单参数,JSON参数。
URL参数这是一种比较简单的URL参数,参数可以直接拼接在URL后面,问好前面是接口请求的地址,后面是传递的参数,可以是多个,用&连接。表单参数,在提交请求的时候,需要写Content-Type,urlencoded类型一般在发送文章,博客的时候,采取这种参数。JSON参数,这个使用也非常广泛。因为json是一个轻量级的数据存储结构,而且读取数据也非常快。在现在web开发中非常普及,github也采用这种方式。
URL参数优点,简单,页面跳转比较快。缺点,get方法的拼接长度有可能很长,但是浏览器对这个长度是有限制的不能超过2048k,还有个缺点是参数是明文传递,明文就代表不安全。