1
我創建了提供PDF文檔的Web API。我有一個4.5/4.0客戶端,一個僅支持Javascript的客戶端,我現在正在嘗試爲我們擁有的一些較舊的網站創建一個.NET 3.5客戶端。我明白,我可以NUGET一些圖書館,但從我的理解... HttpClient現在只能在4.0中工作?使用WebClient.UploadValues for .NET 3.5將NameValueCollection發佈到Web API
在任何情況下,我都想使用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返回一個字節數組。我似乎無法讓它顯示在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,否則我似乎無法獲得線上的值,但是我無法獲取合適的響應。
FormDataCollection在System.Net.Http.Formatting中是命名空間。我希望不要在.NET 3.5中使用它。從我已完成的一些閱讀中,我可以簡單地將HttpClient DLL導入到我的.NET 3.5項目中,以便利用客戶端和HttpResponseMessage。如果我能做到這一點,就沒有必要這樣做。 – jlrolin
這爲我解決了同樣的問題。 – lloydphillips