.NET 如何发送json格式请求到一个带有身份验证信息的http连接地址

WSZXF92 2014-05-14 08:09:56
内容:
http://test-connect.grandcanyononepoint.com/ 这是我要发送请求的连接(你可以访问看看,可以看到返回的内容),
我直接访问这个链接返回的是以下json格式字符串(因为我没有设置任何请求信息):
{"success":0,"message":"No Request Specified"} 请求失败 没有指定的请求

文档是给出的请求的格式:
Request Object:
{
"request":"authenticate",
"username":someUser",
"passWord":"somePassword",
"angecyID":"someAgencyID"
}
Returned Object on Success:
{
"success":1,
"sessionKey":"thenCurrentSessionUUID"
}

我的思路是把上面请求的request/username等等封装为一个对象,然后转换为json格式字符串 写webclient请求或者
是httprequest请求,就是在如何发送请求部分不怎么会,第一次调用这个形式的api
时间紧迫 恳请知道使用的前辈帮帮忙!感激不尽!
...全文
318 11 打赏 收藏 转发到动态 举报
写回复
用AI写文章
11 条回复
切换为时间正序
请发表友善的回复…
发表回复
微wx笑 2014-05-15
  • 打赏
  • 举报
回复
引用 1 楼 zhoufeng0401 的回复:
将下面页面起名为ajaxHttpRequest.aspx,用ajax请求这个页面,发送Request Object: { "request":"authenticate", "username":someUser", "passWord":"somePassword", "angecyID":"someAgencyID" } 给这个页面 $.getJSON("ajaxHttpRequest.aspx",{ "request":"authenticate", "username":someUser", "passWord":"somePassword", "angecyID":"someAgencyID" } ,function(data){ if(data.error) alert('请求错误:'+data.error); else //处理你获得的东西,比如data.message }) using System.Net; ...... try { string url= "http://test-connect.grandcanyononepoint.com?request=authenticate&username=someUser&passWord=somePassword&angecyID=someAgencyID" ;//这个url你自己组织,参数用Request.QueryString["username"]接收 HttpWebRequest request = (HttpWebRequest)WebRequest.Create(Url); //声明一个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(); Response.Write(strResult ); } catch (Exception ex) { Response.Write("{error:"+ex.Message+"}"); }
应该是设置response的Header吧, response.Headers.Set("contentType", "application/json");
bwangel 2014-05-15
  • 打赏
  • 举报
回复
你先要搞清楚声份验证是什么性质的。如果是网站自己写的那种,你再怎么传信息也没用。必须先模拟登录。 如果是IIS服务器内置的什么windows或forms验证,这些写法才有用。
WSZXF92 2014-05-15
  • 打赏
  • 举报
回复
谢谢,你们给出的方法我都试过了。还是返回{"success":0,"message":"No Request Specified"}
zhujiazhi 2014-05-15
  • 打赏
  • 举报
回复
首先把json对象给序列化 HttpWebRequest httpWebRequest = WebRequest.Create("url") as HttpWebRequest; httpWebRequest.ContentType = "application/json; charset=utf-8"; byte[] data = System.Text.Encoding.UTF8.GetBytes(jsonData); httpWebRequest.Method = "POST"; httpWebRequest.ContentLength = data.Length; Stream stream = httpWebRequest.GetRequestStream(); stream.Write(data, 0, data.Length); stream.Close(); HttpWebResponse httpWebResponse = httpWebRequest.GetResponse() as HttpWebResponse; Stream responseStream = httpWebResponse.GetResponseStream(); StreamReader streamReader = new StreamReader(responseStream); string result = streamReader.ReadToEnd(); streamReader.Close(); responseStream.Close(); httpWebRequest.Abort(); httpWebResponse.Close(); return result;
WSZXF92 2014-05-15
  • 打赏
  • 举报
回复
附上我写的代码(有些代码是查到的,第一次写这类的请求,请见谅):



WSZXF92 2014-05-15
  • 打赏
  • 举报
回复
那个是收到我的请求返回的信息,我没有传任何的参数 ,所以我想知道怎么把参数传过去 就是如何发送请求。 请求代码资源 ContentType : application/x-www-form-urlencoded
xdashewan 2014-05-15
  • 打赏
  • 举报
回复
引用 7 楼 WSZXF92 的回复:
附图: 这是请求的http地址,在没有传递任何参数的情况下返回的信息。 下图是文档中使用的说明:
请仔细看别人要求你发的content type类型
xdashewan 2014-05-15
  • 打赏
  • 举报
回复
{"success":0,"message":"No Request Specified"} 这个返回值明显不是系统级错误吧,这应该是对方收到你的请求后,处理上的返回值。
WSZXF92 2014-05-15
  • 打赏
  • 举报
回复
附图:

这是请求的http地址,在没有传递任何参数的情况下返回的信息。

下图是文档中使用的说明:






WSZXF92 2014-05-15
  • 打赏
  • 举报
回复
身份验证是我要调取数据那边给出的,应该是你说的 别人网站自己写的那种验证。 模拟登陆没有弄过这类的。 请教~
persuit666 2014-05-14
  • 打赏
  • 举报
回复
将下面页面起名为ajaxHttpRequest.aspx,用ajax请求这个页面,发送Request Object: { "request":"authenticate", "username":someUser", "passWord":"somePassword", "angecyID":"someAgencyID" } 给这个页面 $.getJSON("ajaxHttpRequest.aspx",{ "request":"authenticate", "username":someUser", "passWord":"somePassword", "angecyID":"someAgencyID" } ,function(data){ if(data.error) alert('请求错误:'+data.error); else //处理你获得的东西,比如data.message }) using System.Net; ...... try { string url= "http://test-connect.grandcanyononepoint.com?request=authenticate&username=someUser&passWord=somePassword&angecyID=someAgencyID" ;//这个url你自己组织,参数用Request.QueryString["username"]接收 HttpWebRequest request = (HttpWebRequest)WebRequest.Create(Url); //声明一个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(); Response.Write(strResult ); } catch (Exception ex) { Response.Write("{error:"+ex.Message+"}"); }

62,046

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术交流专区
javascript云原生 企业社区
社区管理员
  • ASP.NET
  • .Net开发者社区
  • R小R
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

.NET 社区是一个围绕开源 .NET 的开放、热情、创新、包容的技术社区。社区致力于为广大 .NET 爱好者提供一个良好的知识共享、协同互助的 .NET 技术交流环境。我们尊重不同意见,支持健康理性的辩论和互动,反对歧视和攻击。

希望和大家一起共同营造一个活跃、友好的社区氛围。

试试用AI创作助手写篇文章吧