.NET 2.0 Rest客户端

.NET 2.0 Rest客户端

问题描述:

我无法确定您是否可以构建.Net 2.0 REST客户端。我搜索了高和低,但只有遇到提及使用3.5和WCF的结果。如果可能的话,我希望能够使用2.0构建一个.Net REST客户端。我对我想要完成的任务有一个大致的了解,并且遇到了针对经过身份验证的REST Web服务传递参数的问题。我正在寻找.Net 2.0 vb或c#的示例。.NET 2.0 Rest客户端

目前我正在尝试使用HttpWebRequest的,但遇到了问题:

我上的GetResponse()行接收
 Dim ord As order 
     Dim url As String = String.Format("https://login.someurl.com/rest/order/{0}", Web.HttpUtility.UrlEncode(id)) 
     Dim request As HttpWebRequest = WebRequest.Create(New Uri(url)) 
     request.Method = "GET" 
     request.ContentType = "application/json" 
     request.Credentials = New NetworkCredential(UserName, Password) 
     Dim resp As HttpWebResponse = Nothing 

     resp = request.GetResponse() 
     Dim reader As StreamReader = New StreamReader(resp.GetResponseStream) 
     Dim response As String = reader.ReadToEnd 

     ord = JsonConvert.DeserializeObject(response) 

错误消息为:“远程服务器返回错误:(412)参数错误。 “

+0

您确定该服务支持json吗? – dkackman

+0

@dkackman正面,这是在api文档 –

您可以使用类似RestSharp的库。

RestSharp is a simple, open source REST client for .NET designed primarily for consuming third-party HTTP APIs.

+0

我已经看过,但我不能使用该库,因为它需要.net 3.5 –

+2

@Mike D - .NET 3.5使用2.0运行时。你应该可以很好地使用二进制文件。 – Oded

+0

@Oded,取决于,如果库引用.NET 3。5个组件,例如'System.Core',它将无法工作。两个框架使用相同CLR的事实并不意味着针对.NET 3.5编译的程序集将在仅安装了.NET 2.0的机器上运行。看着[RestSharp.csproj](https://github.com/johnsheehan/RestSharp/blob/master/RestSharp/RestSharp.csproj),它似乎需要System.Core。 –

您应该能够建立一个REST客户端没有什么比WebClient类是提供给.NET 2.0的更多。

this WP7 app关联的代码有一个简单的代码。虽然应用程序本身是.net 4我不认为有任何内容太难以移植到.net 2(只要您喜欢XPath,XDocument很容易替换为XmlDocument)

+0

看我的编辑,寻找一个例子来帮助解决我的问题可能存在的地方。 –

设置接受标题,而不是ContentType。 ContentType仅在您发送数据时使用。只是为了澄清,你实际上并没有使用WebClient,你使用的是完全不同的HttpWebRequest和HttpWebResponse对象。

此外,请确保安装Fiddler,以便您可以实际看到线路上发生了什么。它会让你的生活更轻松。

+0

那里好,我留下了一些修改WebClient对象的代码。我确实安装了提琴手,我会从那里看看我的要求。 –

.net 3.5是.Net 2.0,增加了库。只需安装.Net 3.5并配置网站/ WebService如果使用(IIS 6)或应用程序池(如果使用IIS 7.5)

  1. 作为测试,我下载了RestSharp。将其设置为.NET 2.0编译。删除了未解析的程序集。
  2. 然后我加了LinqBridge.dll。 它抱怨没有System.Xml.Linq
  3. 所以我下载了单声道并打开了System.Xml.Linq_net2.0.csproj
  4. 删除了参考System.Core.dll
  5. 新增LinqBridge.dll
  6. 创建缺少consts。文件,以便它具有Assembly cs文件的正确属性。它编译。
  7. 我又回到了RestSharp项目并添加到System.Xml.Linq参考我刚刚创建和编译它
  8. 我还没有测试,但我会尽快这样做是为了我的项目之一。