我创建了一个提供 PDF 文档的 Web API。我有一个 4.5/4.0 客户端,一个纯 Javascript 客户端,我现在正尝试为我们拥有的一些旧网站创建一个 .NET 3.5 客户端。我知道我可以 NUGET 一些库,但据我了解...... HttpClient 现在只能在 4.0 中工作吗?
无论如何,我想使用 WebClient 作为完成此任务的一种手段。目前我有:
Dim js As New Script.Serialization.JavaScriptSerializer
Dim client As New Net.WebClient
client.Headers(Net.HttpRequestHeader.ContentType) = "application/x-www-form-urlencoded"
Dim serializedData As String = js.Serialize(Me.PDFReport)
Dim collection As New NameValueCollection
collection.Add("value", serializedData)
Dim response As Byte() = client.UploadValues("http://www.mywebsite.com/api/report/Post/", collection)
我将我的序列化数据推送到 NameValueCollection 中,以便我可以返回一个包含 PDF 的 Byte 数组。我似乎无法让它出现在 Web API 端:
Public Function Post(str As NameValueCollection) As Byte()
Dim js As New JavaScriptSerializer
Dim obj As PDFReport = js.Deserialize(Of PDFReport)(str("value"))
Dim rpt As New ReportService(obj)
'Return Nothing (Commented for now until I figure out how to get values)
End Function
我究竟做错了什么?除非我使用 UploadString,否则我似乎无法通过线路获取值,但是我无法获取适当的响应。