繁体   English   中英

使用Volley Android将数据发送到ASP.NET服务器

[英]Send data to asp.net server using volley android

我想从我搜索过volley的Android应用程序中将数据发送到服务器,并在下面编写了代码,但是它无法正常工作,您能帮我解决一下吗?

我使用地图获取数据,然后提取键并将它们放入字符串数组:

keys=new String[data.size()];
data.keySet().toArray(keys); 

之后,我发出这样的请求:

for (int i=0;i<data.size();i++) {
    requestJsonObject.put(keys[i], data.get(keys[i])); 
}

这是完整的代码:

public  class  ApiPostData {

    private static final String TAG = "PostData";
    private String url;
    private HashMap<String,String> data=new HashMap<>();

    String[] keys;

    public String getUrl() {
        return url;
    }

    public ApiPostData setData(HashMap<String, String> data) {
        this.data = data;
        return this;
    }

    public ApiPostData setUrl(String url) {
        this.url = url;
        return this;
    }

    public void PostData(final OnSetSettingComplete onSetSettingComplete) {
        JSONObject requestJsonObject = new JSONObject();
        try {
            keys=new String[data.size()];
            data.keySet().toArray(keys);  
            for (int i=0;i < data.size(); i++) {
                requestJsonObject.put(keys[i], data.get(keys[i])); 
            }
            JsonObjectRequest request = new JsonObjectRequest(Request.Method.POST, url, requestJsonObject, new Response.Listener<JSONObject>() {
                @Override
                public void onResponse(JSONObject response) {
                    try {
                        int success = response.getInt("statusCode");
                        onSetSettingComplete.onResponse(success);
                    } catch (JSONException e) {
                        e.printStackTrace();
                    }
                }
            }, new Response.ErrorListener() {
                @Override
                public void onErrorResponse(VolleyError error) {
                }
            });

            request.setRetryPolicy(new DefaultRetryPolicy(10000, DefaultRetryPolicy.DEFAULT_MAX_RETRIES, DefaultRetryPolicy.DEFAULT_BACKOFF_MULT));
            Volley.newRequestQueue(G.context).add(request);

        } catch (JSONException e) {
            Log.e(TAG, "EpostData: " + e.toString());
        }
    }

    public interface OnSetSettingComplete {
        void onResponse(int success);
    }

}

建议使用okhttp

OkHttpClient client = new OkHttpClient();
RequestBody body = new     FormEncodingBuilder().add("key1","value1").add("key1","value2").add("key3","valu    e3").build();
Request request = new Request.Builder()
    .url("URL HERE")
        .addHeader("Some Headers Here", "Header Values Here")
        .addHeader("Some Headers Here", "Header Values Here")
        .post(body)
        .build();
Response response = client.newCall(request).execute();

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM