在Android

时间:2018-11-06 23:11:06

标签: c# android web-services kotlin android-volley

我已经阅读了几乎所有相关问题,但不幸的是没有人解决了我的问题。 我的问题是我已经创建了一个C#Web服务,并出于不同目的在其中创建了四个方法,其中一个叫做getSections的方法是:

[WebMethod]
    public string getSections()
    {
        connectToDB();
        da = new SqlDataAdapter("select * from Sections", link);

        dt = new DataTable();
        da.Fill(dt);

        return Newtonsoft.Json.JsonConvert.SerializeObject(dt,Newtonsoft.Json.Formatting.Indented);
    }

当我从Visual Studio中测试Web服务时,它会显示指向四种方法的链接以逐个调用它们,所有方法都能正常工作,因此我将它们上载到服务器。之后,我尝试使用排球从我的应用程序访问getSections方法,这里是我的操作方式:

private fun getAllSections() {
    /**
     * Start Downloading all the sections
     */


    var uri="http://......../myProject/WebService1.asmx?op=getSections";

    val stringRequest = object : StringRequest(Request.Method.POST, uri, Listener<String> { response ->

        Log.i("SectionsResponse", response)
        Toast.makeText(this,"SectionsResponse: "+response,Toast.LENGTH_LONG).show()

    }, object : Response.ErrorListener {
        override fun onErrorResponse(error: VolleyError?) {
            if (error != null) {
                Log.i("SectionsError:", error.message.toString())
                Toast.makeText(baseContext,"error"+error.message.toString(),Toast.LENGTH_LONG).show()
          }
        }
    }) {
        override fun getParams(): MutableMap<String, String> {
            val params=HashMap<String,String>()
            //params.put("a","aa")
            return params
        }
    }

    if (Funs().isOnline(this)) {

        val requesQueue = Volley.newRequestQueue(this)
        requesQueue.add<String>(stringRequest)

    } else {
        Toast.makeText(this, resources.getString(R.string.connectionFailed), Toast.LENGTH_LONG).show()
    }
    /**
     * End Downloading all the sections
     */
}

在上述所有内容之后,我从错误侦听器得到了空结果,这意味着该URL无效或未找到。 所以

  

什么是使用凌空库将方法访问到c#Web服务中的有效方法。

感谢任何帮助。

0 个答案:

没有答案