2011-09-12 30 views
15

我是一个VB.NET中的web服务的新手。我正在制作一个与JIRA(http://www.atlassian.com/software/jira/)交流的桌面应用程序。他们提供了我决定使用的REST API。第一步是登录他们说...如何使用VB.NET将JSON发布到特定的URL?

“要登录到JIRA,您需要发布一个JSON格式的用户名和密码......”

{“用户名” : “管理员”, “密码”: “管理员”}

这个网址...

https://开头addressgoeshere(我们使用的是HTTPS)

有人可以提供一个示例代码来做到这一点,所以我可以有一个指导和一个良好的开端?请非常感谢你!

回答

25

这里是有效地发布json的代码。变量res是能够给你的性反应,以查询

请记得使用

导入

  • System.Net
  • System.IO
  • System.text

Imports 

个然后导入名称

绕过SSL证书过期检查此:http://blog.jameshiggs.com/2008/05/01/c-how-to-accept-an-invalid-ssl-certificate-programmatically/

Private Function SendRequest(uri As Uri, jsonDataBytes As Byte(),contentType As String, method As String) As String 
Dim req As WebRequest = WebRequest.Create(uri) 
req.ContentType = contentType 
req.Method = method 
req.ContentLength = jsonDataBytes.Length 


Dim stream = req.GetRequestStream() 
stream.Write(jsonDataBytes, 0, jsonDataBytes.Length) 
stream.Close() 

Dim response = req.GetResponse().GetResponseStream() 

Dim reader As New StreamReader(response) 
Dim res = reader.ReadToEnd() 
reader.Close() 
response.Close() 

Return res 
End Function 

使用此功能

Dim data = Encoding.UTF8.GetBytes(jsonSring) 
Dim result_post = SendRequest(uri, data, "application/json", "POST") 
+0

嗨!谢谢!我终于搞定了!但我有一个小问题。当我尝试使用HTTPS它给了一个 **“类型‘System.Net.WebException’未处理的异常在System.dll中发生 附加信息:基础连接已关闭:上一个发送发生意外的错误。“** 如何使用https工作?谢谢! – max

+0

同样应该为https工作也 – Parvesh

+0

这有点奇怪。我一直在得到那个错误。当我在谷歌浏览器或任何其他浏览器访问网址时,它会要求提供证书,我只需点击“继续”即可。你认为它与它有关吗? – max

0

对于“基础连接已关闭:”错误包括这些2行后的代码行​​- 应该可以工作

System.Net.ServicePointManager.UseNagleAlgorithm = False System.Net.ServicePointManager.Expect100Continue = False

相关问题