需要一些将Java代码Android Studio移植到C#Visual Studio的帮助

时间:2019-03-25 14:30:43

标签: java c# porting

我需要一些帮助,以将一段Java代码移植到C#中。该代码是关于对Web api的发布请求,以建立连接,我在Java中使用了Volley,并且已经在Visual Studio中安装了NuGet。我无法将StringRequest函数转换为C#。

这是我当前尝试在C#中移植的代码,但是在C#中声明参数时出现错误。例如,它无法识别Request.Method和新的Response.Listener。

StringRequest stringRequest = new StringRequest(Request.Method.POST, URL, new Response.Listener<String>()
        {
            @Override
            public void onResponse(String response)
            {
                Log.i("Volley Response", response);
            }
        }, new Response.ErrorListener()
        {
            @Override
            public void onErrorResponse(VolleyError error)
            {
                Log.e("Volley Error", error.toString());
            }
        })

        {
            @Override
            public String getBodyContentType()
            {
                return "application/json; charset=utf-8";
            }

            @Override
            public byte[] getBody()
            {
                try
                {
                    return requestBody.getBytes("utf-8");
                }
                catch (UnsupportedEncodingException uee)
                {
                    return null;
                }
            }
        };
        requestQueue.add(stringRequest);
        return stringRequest;

如果有人可以很好地帮助我将其移植到C#中,我将非常高兴。

1 个答案:

答案 0 :(得分:0)

我自己解决了该问题,无需使用Volley,也没有移植Java代码。

再次抱歉要求移植,我不知道这不是我应该在这里询问的内容。感谢jrswgtr告诉我。

这是用于向Web api发出简单POST请求,从两个Editbox获取值并单击按钮后将其发送的代码。

public class MainActivity : AppCompatActivity
    {
        protected override void OnCreate(Bundle savedInstanceState)
        {
            base.OnCreate(savedInstanceState);
            SetContentView(Resource.Layout.activity_main);
            Button invia = FindViewById<Button>(Resource.Id.submit);
            EditText utenteInserito = FindViewById<EditText>(Resource.Id.utente);
            EditText passwordInserito = FindViewById<EditText>(Resource.Id.password);

            invia.Click += async delegate
            {
                HttpClient client = new HttpClient();
                string utente = utenteInserito.Text;
                string password = passwordInserito.Text;
                string json = "{'user': '"+utente+"','password': '"+password+"'}";
                string URL = "http://192.168.1.11:57279/api/utente";
                var content = new StringContent(json, Encoding.UTF8, "application/json");
                var response = await client.PostAsync(URL, content);
                var responseString = await response.Content.ReadAsStringAsync();
            };
        }
    }

使用已定义的模型更新代码

invia.Click += delegate
            {
                string user = utenteInserito.Text;
                string password = passwordInserito.Text;
                HttpClient client = new HttpClient();
                client.BaseAddress = new Uri("http://192.168.1.11:57279/api/");
                var utente = new Utente
                {
                    user = user,
                    password = password
                };
                var postTask = client.PostAsJsonAsync<Utente>("utente", utente);
                postTask.Wait();
            };