Post提交数据到接口或网址 获取返回数据
2013-04-08 15:03
399 查看
/// <summary> /// POST提交XML文件获取返回数据 /// </summary> /// <param name="url">网址</param> /// <param name="strPost">XML数据</param> /// <returns></returns> private string PostXml(string url, string strPost) { string result = ""; StreamWriter myWriter = null; HttpWebRequest objRequest = (HttpWebRequest)WebRequest.Create(url); objRequest.Method = "POST"; objRequest.ContentLength = strPost.Length; objRequest.ContentType = "text/xml";//提交xml //objRequest.ContentType = "application/x-www-form-urlencoded";//提交表单 try { myWriter = new StreamWriter(objRequest.GetRequestStream()); myWriter.Write(strPost); } catch (Exception e) { return e.Message; } finally { myWriter.Close(); } HttpWebResponse objResponse = (HttpWebResponse)objRequest.GetResponse(); using (StreamReader sr = new StreamReader(objResponse.GetResponseStream())) { result = sr.ReadToEnd(); sr.Close(); } return result; } /// <summary> /// Post提交获取返回数据 /// </summary> /// <param name="url">网址</param> /// <returns></returns> protected string GetWebContent(string url) { Stream outstream = null; Stream instream = null; StreamReader sr = null; HttpWebResponse response = null; HttpWebRequest request = null; // 要注意的这是这个编码方式,还有内容的Xml内容的编码方式 Encoding encoding = Encoding.GetEncoding("UTF-8"); byte[] data = encoding.GetBytes(url); // 准备请求,设置参数 request = WebRequest.Create(url) as HttpWebRequest; request.Method = "POST"; //request.ContentType = "text/plain"; request.ContentLength = data.Length; outstream = request.GetRequestStream(); outstream.Write(data, 0, data.Length); outstream.Flush(); outstream.Close(); //发送请求并获取相应回应数据 response = request.GetResponse() as HttpWebResponse; //直到request.GetResponse()程序才开始向目标网页发送Post请求 instream = response.GetResponseStream(); sr = new StreamReader(instream, encoding); //返回结果网页(html)代码 string content = sr.ReadToEnd(); return content; }
#region WebService返回的Xml转换成DataSet /// <summary> /// WebService返回的Xml转换成DataSet /// </summary> /// <param name="text">Xml字符</param> /// <returns></returns> private DataSet GetDataSet(string text) { try { XmlTextReader reader = new XmlTextReader(new StringReader(text)); reader.WhitespaceHandling = WhitespaceHandling.None; DataSet ds = new DataSet(); ds.ReadXml(reader); reader.Close(); ds.Dispose(); return ds; } catch { return null; } } #endregion
#region 后台获取ashx返回的数据 /// <summary> /// 后台获取ashx返回的数据 /// </summary> /// <param name="relativePath">地址</param> /// <param name="data">参数</param> /// <returns></returns> public static string GetRequestJsonString(string relativePath, string data) { string requestUrl = GetRequestUrl(relativePath, data); try { WebRequest request = WebRequest.Create(requestUrl); request.Method = "GET"; StreamReader jsonStream = new StreamReader(request.GetResponse().GetResponseStream()); string jsonObject = jsonStream.ReadToEnd(); return jsonObject; } catch { return string.Empty; } } public static string GetRequestUrl(string relativePath, string data) { string absolutePath = HttpContext.Current.Request.Url.AbsoluteUri; string hostNameAndPort = HttpContext.Current.Request.Url.Authority; string applicationDir = HttpContext.Current.Request.ApplicationPath; StringBuilder sbRequestUrl = new StringBuilder(); sbRequestUrl.Append(absolutePath.Substring(0, absolutePath.IndexOf(hostNameAndPort))); sbRequestUrl.Append(hostNameAndPort); sbRequestUrl.Append(applicationDir); sbRequestUrl.Append(relativePath); if (!string.IsNullOrEmpty(data)) { sbRequestUrl.Append("?"); sbRequestUrl.Append(data); } return sbRequestUrl.ToString(); } #endregion
//模拟提交数据给接口,获取返回字符串 protected void Button1_Click(object sender, EventArgs e) { System.Net.WebClient client = new WebClient(); System.Collections.Specialized.NameValueCollection collect = new System.Collections.Specialized.NameValueCollection(); collect.Add("id", "11111"); collect.Add("name", "lee"); Byte[] pageData = client.UploadValues("http://localhost:86/Ajax/Handler2.ashx", collect); string pageHtml = Encoding.UTF8.GetString(pageData); Response.Write(pageHtml); }
<%@ WebHandler Language="C#" Class="Handler2" %> using System; using System.Web; public class Handler2 : IHttpHandler { public void ProcessRequest (HttpContext context) { context.Response.ContentType = "text/plain"; string id = context.Request["id"]; string name = context.Request["name"]; string returnStr = string.Empty; if (!string.IsNullOrEmpty(id)&& !string.IsNullOrEmpty(name)) { returnStr = "序号" + id + ",姓名" + name; context.Response.Write(returnStr); } context.Response.End(); } public bool IsReusable { get { return false; } } }
相关文章推荐
- Post提交数据到接口或网址 获取返回数据
- Post提交数据到接口或网址 获取返回数据
- jQuery登录界面,不用跳转页面即可提交post,可以从服务器端获取返回数据
- [C#]Winform后台提交数据且获取远程接口返回的XML数据,转换成DataSet
- php模拟GET与POST向微信接口提交及获取数据的方法
- [C#]Winform后台提交数据且获取远程接口返回的XML数据,转换成DataSet
- php使用CURL模拟GET与POST向微信接口提交及获取数据的方法
- [C#]Winform后台提交数据且获取远程接口返回的XML数据,转换成DataSet
- AJAX通过post提交数据,并获取XML格式返回结果
- libcurl增加HTTP header 和 POST之后获取返回数据
- struts2 + ajax(由前台的form提交数据到后台,再根据form所调用返回获取的后台json格式的数据返回到前端,然后前端用jquery对json数据进行解析)==》》涉及文件上传的部分
- swift-使用NSURLConnection进行数据的提交和获取(POST与GET)
- 客户端POST提交、服务器返回json格式数据的demo
- express 4.x 获取post提交的数据
- HttpClient get和HttpClient Post请求的方式获取服务器的返回数据
- Java 通过HttpURLConnection Post方式提交json,并从服务端返回json数据
- C# 利用xmlhttp根据网址调用接口获取数据
- Java 通过HttpURLConnection Post方式提交json,并从服务端返回json数据
- 微信小程序调用接口返回数据或提交数据
- PHP无法获取表单post方式提交的数据问题