使用android中的android volley库调用dotnet asmx web服务

时间:2015-03-22 15:54:11

标签: android web-services asmx android-volley

我正面临使用android volley库调用.net .asmx web服务的问题。

没有参数,它的工作正常。

这是我的网络服务

[WebMethod]
private string MN_InsEOMTestScoreDetailsIndividual(string data)
{
    ArrayList arrReturnDetails = new ArrayList();
    bool bReturn = false;
    string errMsg = globalErrMsg;
    try
    {
        Dictionary<string, object> dicData = JsonConvert.DeserializeObject<Dictionary<string, object>>(data);

        bReturn = InsEOMTestScoreDetailsIndividual(dicData["eomTSIndvlDetId"].ToString().Trim(), dicData["eomTRDetId"].ToString().Trim(), dicData["eomTSSummDetId"].ToString().Trim(),
        dicData["studCode"].ToString().Trim(), dicData["ctrCode"].ToString().Trim(), dicData["batCode"].ToString().Trim(), dicData["phCode"].ToString().Trim(), dicData["pcCode"].ToString().Trim(),
        dicData["tmCode"].ToString().Trim(), dicData["testActualDur"].ToString().Trim(),
             dicData["testAttemptDur"].ToString().Trim(), dicData["testTtlMks"].ToString().Trim(), dicData["mksObt"].ToString().Trim(), dicData["ttlQues"].ToString().Trim(),
             dicData["rAnsCnt"].ToString().Trim(), dicData["wAnsCnt"].ToString().Trim(), dicData["attemptTestDate"].ToString().Trim(),
             dicData["isSolViewed"].ToString().Trim(), dicData["quesXML"].ToString().Trim(), out errMsg);

    }
    catch (Exception ex)
    {
        ErrorHandler.LogError("WebService:APP_UserActivityDetails", "M_InsEOMTestScoreDetailsIndividual", ex);
    }
    arrReturnDetails.Add(new
    {
        b = bReturn,
        err = errMsg
    });
    return JsonConvert.SerializeObject(arrReturnDetails);
}

1 个答案:

答案 0 :(得分:2)

您的网络服务可能是 GET 网络服务,您尝试将其作为 POST 进行调用。那不会奏效。有两种方法可以解决这个问题:

  • 确保您的网络服务属于 POST 类型,然后在Volley请求中将您的参数添加为HashMap
  • 如果您希望将网络服务保留为 GET ,请手动将参数附加到网址字符串(即不要将它们作为键值对传递给{{1 }})。