这是一个查汉字的页面
网址:http://open-lit.com/postgb.php?menu=&gbid=217&cid=1&bid=10737&search=&start=自已用C# 写了段代码Post 来提交查询,但是没有成功,代码如下: ASCIIEncoding encoding = new ASCIIEncoding();
string postData = "gbid=" + "217";
postData += ("&cid=" + "1");
postData += ("&bid=" + "10737");
//postData += ("&Accept=" + strsubmit);
byte[] data = encoding.GetBytes(postData);
// Prepare web request...
System.Net.HttpWebRequest myRequest = (System.Net.HttpWebRequest)System.Net.WebRequest.Create("http://open-lit.com/postgb.php");
myRequest.Method = "POST";
myRequest.ContentType = "application/x-www-form-urlencoded";
myRequest.ContentLength = data.Length;
Stream newStream = myRequest.GetRequestStream();
// Send the data.
newStream.Write(data, 0, data.Length);
newStream.Close();
HttpWebResponse myResponse = (HttpWebResponse)myRequest.GetResponse();
StreamReader reader = new StreamReader(myResponse.GetResponseStream(), Encoding.UTF8);
string content = reader.ReadToEnd();
textBox1.Text = content;
请问错在哪里?
网址:http://open-lit.com/postgb.php?menu=&gbid=217&cid=1&bid=10737&search=&start=自已用C# 写了段代码Post 来提交查询,但是没有成功,代码如下: ASCIIEncoding encoding = new ASCIIEncoding();
string postData = "gbid=" + "217";
postData += ("&cid=" + "1");
postData += ("&bid=" + "10737");
//postData += ("&Accept=" + strsubmit);
byte[] data = encoding.GetBytes(postData);
// Prepare web request...
System.Net.HttpWebRequest myRequest = (System.Net.HttpWebRequest)System.Net.WebRequest.Create("http://open-lit.com/postgb.php");
myRequest.Method = "POST";
myRequest.ContentType = "application/x-www-form-urlencoded";
myRequest.ContentLength = data.Length;
Stream newStream = myRequest.GetRequestStream();
// Send the data.
newStream.Write(data, 0, data.Length);
newStream.Close();
HttpWebResponse myResponse = (HttpWebResponse)myRequest.GetResponse();
StreamReader reader = new StreamReader(myResponse.GetResponseStream(), Encoding.UTF8);
string content = reader.ReadToEnd();
textBox1.Text = content;
请问错在哪里?
解决方案 »
- 如何获取当前页之前的页
- 关于域的疑问
- C#怎么执行无参数存储过程,请给出代码
- 为什么在代码混合的ASPX页面中,这时if(!IsPostBack)语句好象不起作用了?
- 有关 在页内取出指定的所有控件问题
- 急问:程序中已经建立了一个SQLSERVER连接,现在想在不新建连接的情况下打开同一个数据服务器上另一个库中的视图,有办法吗??
- 为什么我总不能将LINKBUTTON动态声明并加入到页面中?
- ASP.NET中时间如何判断!
- help! xslt 文件中 简单的两数值相加问题!
- 请问有什方法或属性可调整web browser加载之网页显示位置
- 火狐5.0.1下alert不好用,不能显示边框
- 请教个问题,大牛们帮忙指个路子吧,急~
HttpWebRequest request = (HttpWebRequest)WebRequest.Create("");
string postData = "";
byte[] data = Encoding.UTF8.GetBytes(postData);
request.Method = "POST";
string payload="chkbook=book&keyword=管理";
WebRequest req = WebRequest.Create("http://localhost/pceo/Search.aspx");
req.Method = "POST";
req.ContentType = "application/x-www-form-urlencoded";
StringBuilder UrlEncoded = new StringBuilder();
Char[] reserved = {?, =, &};
byte[] SomeBytes = null;
if (payload != null)
{
int i=0, j;
while(i<payload.Length)
{
j=payload.IndexOfAny(reserved, i);
if (j==-1)
{
UrlEncoded.Append(HttpUtility.UrlEncode(payload.Substring(i, payload.Length-i),System.Text .Encoding .GetEncoding ("gb2312")));
break;
}
UrlEncoded.Append(HttpUtility.UrlEncode(payload.Substring(i, j-i),System.Text .Encoding .GetEncoding ("gb2312")));
UrlEncoded.Append(payload.Substring(j,1));
i = j+1;
}
SomeBytes = Encoding.Default.GetBytes(UrlEncoded.ToString());
req.ContentLength = SomeBytes.Length;
Stream newStream = req.GetRequestStream();
newStream.Write(SomeBytes, 0, SomeBytes.Length);
newStream.Close();
}
else
{
req.ContentLength = 0;
}
try
{
WebResponse result = req.GetResponse();
Stream ReceiveStream = result.GetResponseStream(); Byte[] read = new Byte[512];
int bytes = ReceiveStream.Read(read, 0, 512); txtHTML.InnerHtml = "";
while (bytes > 0)
{ // 注意:
// 下面假定响应使用 UTF-8 作为编码方式。
// 如果内容以 ANSI 代码页形式(例如,932)发送,则使用类似下面的语句:
// Encoding encode = System.Text.Encoding.GetEncoding("shift-jis");
Encoding encode = System.Text.Encoding.GetEncoding("gb2312");
txtHTML.InnerHtml = txtHTML.InnerHtml + encode.GetString(read, 0, bytes);
bytes = ReceiveStream.Read(read, 0, 512);
}
}
catch(Exception)
{
txtHTML.InnerHtml = "检索页时出错";
}
2 检查你的请求格式、URL和网络访问是否出现了异常,而导致根本请求就没有到达对方的服务器_____________________________________唉,能不能好好回答别人的问题,看清楚问题再回复。
总是回复一些没有意义的东西,能帮别人解决问题吗?没看楼主的代码已经写得挺好了,POST也实现了,人不用你们这些大哥来教他怎么 POST说得激进点,希望楼上 2、3、5 楼诸位不要生气,更不要怀恨;我知道你们很热心,并期待通过这热心来得到得分以作为回报,但至少要能帮人解决问题吧,要不然拿这些分不手软么
自已研究了一下,这段代码还需要再改改就差不多达到目的了:using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using System.Net;namespace WindowsFormsApplication1
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent(); string url = "http://open-lit.com/postgb.php?gbid=217&cid=1";
this.webBrowser1.DocumentCompleted += new WebBrowserDocumentCompletedEventHandler(webBrowser1_DocumentCompleted);
webBrowser1.Navigate(url);
} private void webBrowser1_DocumentCompleted(object sender, WebBrowserDocumentCompletedEventArgs e)
{
HtmlElement btnSubmit = webBrowser1.Document.All["btnschdic"];
HtmlElement showdic = webBrowser1.Document.All["showdic"]; if (showdic == null || btnSubmit == null)
return; showdic.SetAttribute("value", "雲");
btnSubmit.InvokeMember("click");
return;
} private void button1_Click(object sender, EventArgs e)
{
string url = "http://open-lit.com/postgb.php?gbid=217&cid=1";
this.webBrowser1.DocumentCompleted += new WebBrowserDocumentCompletedEventHandler(webBrowser1_DocumentCompleted);
webBrowser1.Navigate(url);
}
}
}