如何在 Android 中使用 Volley 库进行肥皂发布请求

Posted

技术标签:

【中文标题】如何在 Android 中使用 Volley 库进行肥皂发布请求【英文标题】:How to make soap post request using Volley library in Android 【发布时间】:2015-01-25 17:17:35 【问题描述】:

我想使用 Volley 库发出肥皂帖子请求。我正在使用以下代码并收到错误“HTTP/1.1 400 Bad Request”。在以前,我使用 Soap 库工作正常,但我需要使用 Volley 库发出请求。我正在使用以下 url "http://test.com/TestApp/Services/service.asmx?op=ForgotPassword"

public void forgotPassword(final String userName,String url) 

        StringRequest sr = new StringRequest(Request.Method.POST,
                url,
                new Response.Listener<String>() 
                    @Override
                    public void onResponse(String response) 

                        Toast.makeText(mContext, "Success" + response,
                                Toast.LENGTH_SHORT).show();
                    
                , new Response.ErrorListener() 
                    @Override
                    public void onErrorResponse(VolleyError error) 
                        showResponse(error);
                    
                ) 
            @Override
            protected Map<String, String> getParams() 
                Map<String, String> params = new HashMap<String, String>();

                params.put("Email", userName);
                params.put("Language", "en");


                return params;
            

            @Override
            public Map<String, String> getHeaders() throws AuthFailureError 
                Map<String, String> params = new HashMap<String, String>();
                params.put("Content-Type", "application/x-www-form-urlencoded");
                params.put("Content-Length", "length");





                return params;
            
        ;
        Application.getInstance().getRequestQueue().add(sr);
    

请帮我用凌空发出 postsoap 请求。

【问题讨论】:

嗨,Dayakar 你得到了你正在寻找的答案吗,我也在寻找同样的答案。我们可以将 volley 用于 Soap 网络服务吗?? 【参考方案1】:

首先,我建议您通过打印到日志来准确查看您发送的内容。

如果你想要一个 StringRequest,你需要扩展它并覆盖 getParams 和 getBody 方法。

请看这个答案:https://***.com/a/26270185/421467

【讨论】:

【参考方案2】:
public void HttpPOSTRequestWithParam() 
RequestQueue queue = Volley.newRequestQueue(this);
String url = "http://www.yourwebstite.com/login.asp";
StringRequest postRequest = new StringRequest(Request.Method.POST, url, 
    new Response.Listener<String>() 
    
        @Override
        public void onResponse(String response) 
            Log.d("Response", response);
        
    , 
    new Response.ErrorListener() 
    
        @Override
        public void onErrorResponse(VolleyError error) 
            Log.d("ERROR","error => "+error.toString());
        
    
        )      

    @Override
    protected Map<String, String> getParams() 
      
        Map<String, String>  params = new HashMap<String, String>();
        params.put("grant_type", "password"); 
        // volley will escape this for you 

        params.put("username", "tester");  
        params.put("password", "Pass@123");

        return params;
    
;
queue.add(postRequest);

这是使用 volley 发出 SOAP 请求的方法

【讨论】:

以上是关于如何在 Android 中使用 Volley 库进行肥皂发布请求的主要内容,如果未能解决你的问题,请参考以下文章

如何在Android开发中高效使用Volley网络框架

如何在Android开发中高效使用Volley网络框架

如何使用 Gradle 替换 Android Volley 库?

Android Volley 如何使用 volley 在 POST 请求中发送用户名和密码以及其他参数

如何在 kotlin android 中使用 volley 获取 json

如何在 android java 中使用 volley 获取内部信息对象