httpwebrequest上傳
❶ 怎麼用HttpWebRequest進行POST請求,並且把一個很長字元串傳過去,然後在被請求頁面怎麼接受這個字元串
裡面有個關鍵字,Web。就算你是用winform程序請求的,也是屬於Web形式請求的,伺服器也要用Web程序響應。伺服器上用Request.QueryString("參數名")來接受你的這個字元串。一般來說應該請求的伺服器跟你沒有直接關系吧,不然你也不會這么做了。給你一段代碼希望對你有幫助。HttpWebResponse response = (HttpWebResponse)request.GetResponse();
Stream receiveStream = response.GetResponseStream();
StreamReader readStream = new StreamReader(receiveStream, Encoding.GetEncoding("GBK"));
html = readStream.ReadToEnd();
說明:request 類型:HttpWebRequest
❷ httpWebRequest怎麼POST,JSON數據
/// <summary>
/// 返回JSon數據
/// </summary>
/// <param name="JSONData">要處理的JSON數據</param>
/// <param name="Url">要提交的URL</param>
/// <returns>返回的JSON處理字元串</returns>
public string GetResponseData(string JSONData,string Url)
{byte[] bytes = Encoding.UTF8.GetBytes(JSONData)
HttpWebRequest request = (HttpWebRequest)WebRequest.Create(Url);
request.Method = "POST";
request.ContentLength = bytes.Length;
request.ContentType = "text/xml";
Stream reqstream = request.GetRequestStream();
reqstream.Write(bytes, 0, bytes.Length);
//聲明一個HttpWebRequest請求
request.Timeout = 90000;
//設置連接超時時間
request.Headers.Set("Pragma", "no-cache");
HttpWebResponse response = (HttpWebResponse)request.GetResponse();
Stream streamReceive = response.GetResponseStream();
Encoding encoding = Encoding.UTF8;
StreamReader streamReader = new StreamReader(streamReceive, encoding);
string strResult = streamReader.ReadToEnd();
streamReceive.Dispose();
streamReader.Dispose();
return strResult;
}
如果不通過request.write()的方式向介面post數據,將request.ContentLength屬性設置為0,讓後去掉request.write()方法即可!
❸ 怎麼通過HttpWebRequest 把數據發送到伺服器上
下:
解決方案1:
我本地有一個zip 數據包,想通過 http post方式 到伺服器端,怎麼實現?給出具體代碼。 以及從伺服器端get 文件的方法,高手指點,分不多了,全部奉上
解決方案2:
,只要在瀏覽器的地址欄里輸入網站的地址就可以了,例如,但是在瀏覽器的地址欄裡面出現的卻是: ,你知道為什麼會多出一個「http」
❹ 誰知道C#使用HttpWebRequest的POST方法發送大量數據的方法
不想一點一點寫了,粘貼給你吧
使用 HttpWebRequest 向網站提交數據
HttpWebRequest 是 .net 基類庫中的一個類,在命名空間 System.Net 下面,用來使用戶通過 HTTP 協議和伺服器交互。
HttpWebRequest 對 HTTP 協議進行了完整的封裝,對 HTTP 協議中的 Header, Content, Cookie 都做了屬性和方法的支持,很容易就能編寫出一個模擬瀏覽器自動登錄的程序。
程序使用 HTTP 協議和伺服器交互主要是進行數據的提交,通常數據的提交是通過 GET 和 POST 兩種方式來完成,下面對這兩種方式進行一下說明:
1. GET 方式。 GET 方式通過在網路地址附加參數來完成數據的提交,比如在地址 中,前面部分 表示數據提交的網址,後面部分 hl=zh-CN 表示附加的參數,其中 hl 表示一個鍵(key), zh-CN 表示這個鍵對應的值(value)。程序代碼如下:
HttpWebRequest req = (HttpWebRequest) HttpWebRequest.Create( "" );
req.Method = "GET";
using (WebResponse wr = req.GetResponse())
{
//在這里對接收到的頁面內容進行處理
}
2. 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( "" );
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())
{
//在這里對接收到的頁面內容進行處理
}
在上面的代碼中,我們訪問了 的網址,分別以 GET 和 POST 方式提交了數據,並接收了返回的頁面內容。然而,如果提交的參數中含有中文,那麼這樣的處理是不夠的,需要對其進行編碼,讓對方網站能夠識別。
3. 使用 GET 方式提交中文數據。 GET 方式通過在網路地址中附加參數來完成數據提交,對於中文的編碼,常用的有 gb2312 和 utf8 兩種,用 gb2312 方式編碼訪問的程序代碼如下:
Encoding myEncoding = Encoding.GetEncoding("gb2312");
string address = "" + HttpUtility.UrlEncode("參數一", myEncoding) + "=" + HttpUtility.UrlEncode("值一", myEncoding);
HttpWebRequest req = (HttpWebRequest)HttpWebRequest.Create(address);
req.Method = "GET";
using (WebResponse wr = req.GetResponse())
{
//在這里對接收到的頁面內容進行處理
}
在上面的程序代碼中,我們以 GET 方式訪問了網址 ,傳遞了參數「參數一=值一」,由於無法告知對方提交數據的編碼類型,所以編碼方式要以對方的網站為標准。常見的網站中, (網路)的編碼方式是 gb2312, (谷歌)的編碼方式是 utf8。
4. 使用 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( "" );
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 碼,然後提交到伺服器,提交的時候可以說明編碼的方式,用來使對方伺服器能夠正確的解析。
以上列出了客戶端程序使用 HTTP 協議與伺服器交互的情況,常用的是 GET 和 POST 方式。現在流行的 WebService 也是通過 HTTP 協議來交互的,使用的是 POST 方法。與以上稍有所不同的是, WebService 提交的數據內容和接收到的數據內容都是使用了 XML 方式編碼。所以, HttpWebRequest 也可以使用在調用 WebService 的情況下。
❺ C++ 怎麼把圖片轉換成位元組流,再通過HttpWebRequest上傳到指定路徑
找個Base64編碼 的C++庫吧。可以把圖片轉換為字元串,不過,比較長。
❻ C# HttpWebRequest上傳大文件(200M)提示遠程主機強迫關閉了一個現有的連接
伺服器是自己的? 很多伺服器本身有限制上傳時間,可以不限制大小,但會限制上傳時間。
❼ HttpWebRequest和HttpWebResponse消息的上傳和反饋信息的處理
你的代碼,第一段圖片代碼,與第二段手寫代碼,是不是一個意思?
你的代碼,可以滿足你的要求。
❽ wince如何實現上傳圖片到web伺服器,我使用的是HttpWebRequest急求
private static void UploadFile(Stream postedStream, string fileName,
2 string uploadURL, string fileGroup, string fileType,
3 string specialPath, string userName, string uploadType)
4 {
5 if (string.IsNullOrEmpty(uploadURL))
6 throw new Exception("Upload Web URL Is Empty.");
7
8 HttpWebRequest webRequest = (HttpWebRequest)WebRequest.Create(uploadURL);
9
10 //Our method is post, otherwise the buffer (postvars) would be useless
11 webRequest.Method = WebRequestMethods.Http.Post;
12
13 // Proxy setting
14 WebProxy proxy = new WebProxy();
15 proxy.UseDefaultCredentials = true;
16 webRequest.Proxy = proxy;
17
18 //We use form contentType, for the postvars.
19 webRequest.ContentType = "application/x-www-form-urlencoded";
20
21 webRequest.Headers.Add("FileGroup", fileGroup);
22 webRequest.Headers.Add("FileType", fileType);
23 webRequest.Headers.Add("UploadType", uploadType);
24 webRequest.Headers.Add("FileName", fileName);
25 webRequest.Headers.Add("UserName", userName);
26 webRequest.Headers.Add("SpecialFolderPath", specialPath);
27
28 using (Stream requestStream = webRequest.GetRequestStream())
29 {
30 FileUtility.CopyStream(postedStream, requestStream);
31 }
32 try
33 {
34 webRequest.GetResponse().Close();
35 }
36 catch (WebException ex)
37 {
38 HttpWebResponse response = ex.Response as HttpWebResponse;
39 if (response != null)
40 {
41 throw new WebException(response.StatusDescription, ex);
42 }
43
44 throw ex;
45 }
46 catch (Exception exception)
47 {
48 throw exception;
49 }
50 }
❾ C#,HttpWebRequest模擬發送Post請求
HttpWebRequest模擬發送Post請求,直接上代碼,看例子
1、建立請求函數
///<summary>
///POST請求與獲取結果
///</summary>
publicstaticstringHttpPost(stringUrl,stringpostDataStr)
{
HttpWebRequestrequest=(HttpWebRequest)WebRequest.Create(Url);
request.Method="POST";
request.ContentType="application/x-www-form-urlencoded";
request.ContentLength=postDataStr.Length;
StreamWriterwriter=newStreamWriter(request.GetRequestStream(),Encoding.ASCII);
writer.Write(postDataStr);
writer.Flush();
HttpWebResponseresponse=(HttpWebResponse)request.GetResponse();
stringencoding=response.ContentEncoding;
if(encoding==null||encoding.Length<1){
encoding="UTF-8";//默認編碼
}
StreamReaderreader=newStreamReader(response.GetResponseStream(),Encoding.GetEncoding(encoding));
stringretString=reader.ReadToEnd();
returnretString;
2、調用例子
staticvoidMain(string[]args)
{
stringurl="http://www.mystudy.cn/LoginHandler.aspx";
stringdata="UserName=admin&Password=123";
stringresult=HttpPost(url,data);
Console.WriteLine(result);
Console.ReadLine();
}
3、換成你的參數即可
❿ C#用HttpWebRequest上傳數據的問題。
Request可以當成全局變數同url一起傳進來
在方法里只修改Reqest的訪問地址就可以了
也就是不用沒次都要給Request分配內存 你不是要循環的嗎
其它的都沒什麼問題