在C#中发出POST请求

时间:2015-07-22 05:23:39

标签: c# asp.net .net web-services webmethod

方案:

我在server1上有一个Webmethod。我试图使用C#/ vb.net(而不是jQuery)作为后端处理从另一台服务器server2调用server1中的Webmethod1。

以下是我在server1上的网络方法。

<WebMthod> _
Public Function WebMethod1(Param1 As String, Param2 As MyComplexType) As Boolean
    Try
    // Do somethidn somewhere and return boolean
    Catch ex As Exception
    // log something somewhere and throw appropriate error
    End Try
End Function

我正在使用Rest Sharp / HttpClient进行后期调用。下面是使用RestClient的示例代码:

Dim request As New RestRequest("WebMethod1", Method.POST)

Dim client As New RestClient(url)
request.RequestFormat = DataFormat.Json

request.AddParameter("Param1", 1)
request.AddParameter("Param2", JsonConvert.SerializeObject(MyComplexObject))

request.RequestFormat = DataFormat.Json
request.OnBeforeDeserialization = Function(resp)
                                              resp.ContentType = "application/json"
                                              Return Nothing
                                          End Function

Dim response As RestResponse = client.Execute(request)

问题:

现在,我没有任何错误/异常,但问题是它抛出了InternalException 500.可能出现什么问题?

我错过了什么?

1 个答案:

答案 0 :(得分:0)

这可能是因为在您的Web方法中,您期望string作为第一个参数,但是您传递的是1,而不是字符串!