在 android 中使用 android volley 库以参数调用 dotnet asmx webservice

Call dotnet asmx webservice with parameter using android volley library in android

我在使用 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);
}

您的网络服务可能是一个 GET 网络服务,您正试图将其调用为 POST。那行不通的。有两种方法可以更正此问题:

  • 确保您的 Web 服务是 POST 类型,然后将您的参数作为 HashMap 添加到 Volley 请求中。
  • 如果您想将 Web 服务保留为 GET,请手动将参数附加到 URL 字符串(即不要将它们作为键传递) HashMap).
  • 中的值对