C# POST提交JSON字符串示例及实现

需积分: 43 188 下载量 101 浏览量 更新于2024-09-07 5 收藏 1KB TXT 举报
在C#编程中,通过POST方法向服务器发送JSON数据是一项常见的网络请求操作。本文档提供了一个简单的示例代码,展示了如何使用HttpWebRequest和HttpWebResponse类来实现这一功能。首先,我们理解关键概念: 1. **HTTP POST请求**: POST方法是HTTP协议中用于向服务器发送数据的一种常见方式,通常用于创建新的资源或更新现有资源。这里,我们要使用POST方法向指定URL发送数据。 2. **JSON字符串**: JSON(JavaScript Object Notation)是一种轻量级的数据交换格式,易于人阅读和编写,也易于机器解析。在这个例子中,`postData`参数是以JSON格式的字符串,例如`{"key1": "value1", "key2": "value2"}`。 3. **HttpWebRequest对象**: 这是一个用于创建HTTP请求的类,它允许我们设置请求的方法、超时时间、Content-Type等属性。在代码中,创建一个HttpWebRequest实例,并将其指向目标URL。 4. **设置POST数据**: `Encoding.UTF8.GetBytes(postData)`将JSON字符串转换为字节数组,这是POST请求体的基本组成部分。然后,通过`reqStream.Write(data, 0, data.Length)`将数据写入到请求流(reqStream)。 5. **获取响应**: 使用`req.GetResponse()`获取服务器的响应,返回一个HttpWebResponse对象。通过`resp.GetResponseStream()`获取服务器响应的内容。 6. **读取响应内容**: 使用StreamReader读取服务器响应的流,`reader.ReadToEnd()`将响应内容转换为字符串形式,存储在`result`变量中。 总结起来,这段代码的核心功能是封装了C#中进行POST请求并传递JSON数据的过程,适用于在.NET框架下与支持JSON的Web服务进行交互。开发人员可以调用这个`PostUrl`方法,传入目标URL和JSON数据,然后处理服务器返回的响应结果。在实际应用中,可能还需要处理异常、错误检查以及响应的验证,以确保请求的正确性和可靠性。
2013-10-30 上传
string json = ""; string newfilename = ""; string path = ""; try { if (context.Request.Files["file_upload"] != null && context.Request.Files["file_upload"].FileName != "") { string hzm = System.IO.Path.GetExtension(context.Request.Files["file_upload"].FileName);//后缀名 如 .doc string[] a = { ".txt", ".jpg", ".jpeg", ".gif", ".png", ".docx", ".doc", ".xlsx", ".xls", ".rar", ".zip",".pdf" };//设定好了的格式 if (!a.Contains(hzm)) { json = "{\"statusCode\":\"300\",\"message\":\"文件格式不正确\",\"navTabId\":\"nav6\",\"rel\":\"\",\"callbackType\":\"\",\"forwardUrl\":\"\"}"; return json; } else { int defaulsize = Convert.ToInt32(System.Configuration.ConfigurationManager.AppSettings["filesize"]);//取得设置的默认文件的大小 int filesize = (context.Request.Files["file_upload"].ContentLength) / 1024; //取得上传的文件的大小,单位为bytes if (filesize < defaulsize) { #region 对文件进行操作 newfilename = DateTime.Now.ToString("yyyyMMddHHmmssfff") + hzm;//文件的新名字 如20120711105734222.doc path = System.Web.HttpContext.Current.Server.MapPath("~/UploadFile//");//文件保存的路径 if (!Directory.Exists(path)) { Directory.CreateDirectory(path); } #endregion } else { //超过了文件的大小 json = "{\"statusCode\":\"300\",\"message\":\"上传的文件超过了3000M,请重新选择\",\"navTabId\":\"nav6\",\"rel\":\"\",\"callbackType\":\"\",\"forwardUrl\":\"\"}"; return json; } } } } catch (Exception) { json = "{\"statusCode\":\"300\",\"message\":\"文件格式不正确\",\"navTabId\":\"nav6\",\"rel\":\"\",\"callbackType\":\"\",\"forwardUrl\":\"\"}"; return json; } if (newfilename != "") { context.Request.Files["file_upload"].SaveAs(path + newfilename); //保存文件 }