我正在尝试调用一个休息服务..该服务返回json对象...我能够发送请求但无法序列化json ...这里是我正在尝试的代码
Function Sendingrequest(Item As Object) As String
Dim request As HttpWebRequest
Dim response As HttpWebResponse = Nothing
Dim res As StreamReader
Try
request = DirectCast(WebRequest.Create("http://localhost/SomeService/Type?id=" Item), HttpWebRequest)
response = DirectCast(request.GetResponse(), HttpWebResponse)
res = New StreamReader(response.GetResponseStream())
Dim serializer As New System.Runtime.Serialization.Json.DataContractJsonSerializer(res.[GetType]())
Dim ms As New MemoryStream()
serializer.WriteObject(ms, res)
Dim json As String = Encoding.[Default].GetString(ms.ToArray())
Return json
Finally
If Not response Is Nothing Then response.Close()
End Try
End Function
我不确定我是否通过网址正确传递参数...我将网址硬编码为“http:// localhost / SomeService / Type?id = ABC”然后网址被点击但我得到了这个错误
不要求输入数据合约名称为“UTF8Encoding.UTF8Decoder:http://schemas.datacontract.org/2004/07/System.Text”的'System.Text.UTF8Encoding + UTF8Decoder'。考虑使用DataContractResolver或将任何静态未知的类型添加到已知类型列表中 - 例如,使用KnownTypeAttribute属性或将它们添加到传递给DataContractSerializer的已知类型列表中。
有什么建议吗?
谢谢。
答案 0 :(得分:0)
实际上很难从你提供的详细信息中找出问题所在的位置。
以下是我的建议:
在服务端启用跟踪,生成跟踪日志,并使用SvcTraceViewer进行分析。为此,请按照this MSDN article on using the service trace viewer上的说明操作。注意第一次和第二次之间有什么不同。
启用调试例外。这是通过输入include {ExceptionDetailInFaults you can do by following the instructions here来完成的。注意第一次和第二次之间有什么不同。
使用Fiddler监控客户端和服务端的有线流量。
通常,一旦你这样做,你应该有更多关于服务方面什么是时髦的信息,并且可以很快地诊断问题。试试吧,请报告回来! :)