请让我知道我需要在哪里使用Volley在C#中编写“ OnResponse”。
我将代码从Android studio转换为使用Volley库的c#。然后在Xamarin中打开代码以发送请求并接收响应。我添加了Volley Nuget包(Xamarin.Bindings.Volley)。 以下是转换后的C#的代码段。但是,该代码无法识别“ OnResponse”功能。我需要一个使用Volley在c#中成功实现“ OnResponse”实现的示例。
public void GetAndPostReqquest(string url, int requestedCode, JSONObject @object, IServerResponse jsonResponse)
{
int method = Request.equestMethodConsts.Get;
switch (requestedCode)
{
case POST:
method = Request.equestMethodConsts.Post;
break;
case PUT:
method = Request.equestMethodConsts.Put;
break;
}
if (!IsInternetAvailable())
{
jsonResponse.RequestFinishedWithError(MContext.GetString(App8.Droid.Resource.String.internet_connection_is_not_available));
return;
}
jsonResponse.RequestStarted();
JsonObjectRequest request = new JsonObjectRequest(method, url, @object, Llistener, EerrorListener) {
private void OnResponse(JSONObject response)
{
IDictionary<string, string> headers = new Dictionary<string, string>();
string credentials = UNAME + ":" + PWD;
string auth = "Basic " + Convert.ToBase64String(credentials.ToCharArray(0, credentials.Length));
headers["Authorization"] = auth;
headers["Content-Type"] = "application/json; charset=utf-8";
//return headers;
}
}
答案 0 :(得分:0)
要在代码上使用Volley,您需要做一些小改动。
首先,我建议您将使用的Nugget程序包从 Xamarin.Bindings.Volley 更改为 Xamarin.Android.Volley 。您当前使用的是过时的(2017),我建议您使用的不仅是最新的,而且还由Xamarin进行维护,因此很有可能会始终进行更新。
在执行代码的Activity
中,您需要使其实现属于Volley
名称空间一部分的两个接口,分别是:Response.IListener
和{{1} }
它应该像这样:
Response.IErrorListener
这将要求您通过向 Activity 类
添加两个方法:public class MainActivity : Activity, Response.IListener, Response.IErrorListener
和public void OnErrorResponse(VolleyError p0)
来完成这些接口的实现。
在public void OnResponse(Object p0)
方法中,您将要添加逻辑。
在使用它之前,您需要将OnResponse
中收到的Object
强制转换为OnResponse
对象。
JSONObject
的定义稍后应如下所示:
Activity
您的请求将像这样更新:
public class MainActivity : Activity, Response.IListener, Response.IErrorListener
{
public void OnErrorResponse(VolleyError p0)
{
}
public void OnResponse(Object p0)
{
if(p0 is JSONObject response)
{
// Do your logic here with response
}
}
/......
}
希望这会有所帮助。-