我已经阅读了几乎所有相关问题,但不幸的是没有人解决了我的问题。 我的问题是我已经创建了一个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服务中的有效方法。
感谢任何帮助。