当前位置: 首页 > 知识库问答 >
问题:

如何在Android中使用Volley库进行soap post请求

苏硕
2023-03-14

我想使用Volley库发出soap post请求。我正在使用以下代码,并得到错误“HTTP/1.1400错误请求”。在上一篇文章中,我使用的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);
    }

请帮助我用截击发出post soap请求。

共有2个答案

邵展
2023-03-14
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请求

华项明
2023-03-14

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

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

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

 类似资料:
  • 有人知道如何使用com将会话cookie附加到请求吗。Android凌空抽射图书馆?当我登录到一个网站时,它会给我一个会话cookie。浏览器会将该cookie与任何后续请求一起发送回。凌空抽射似乎并没有做到这一点,至少不是自动的。 谢谢

  • 我正在使用截击库。我有以下API urlhttp://example.com/project/contriller/并且需要将json请求作为body发布到它。 如何使用截击发送?

  • 我正在使用在我的Android应用程序上发送HTTP POST请求。其中一个POST请求通过截击触发时返回。当通过rest客户端(Postman、curl)触发时,API返回。我怀疑通过截击发送的请求正文中有什么错误。 有没有办法记录volley在POST请求中发送的完整请求主体?我启用了,它确实记录了完整的响应,但它没有记录请求主体或URL。 请帮助我将HTTP请求的详细信息(url、请求正文等

  • 我正在考虑在我的下一个项目中实现Android Volley库(关于Volley的Google IO演示)。 然而,我还没有找到任何用于该库的严肃API。 我如何上传文件、发送/获取请求,以及使用Volley将Gson解析器添加为解析器? 源代码

  • 所以我正在开发一个需要能够发送和接收http请求的应用程序,我读到了关于Volley的文章。 我遵循了这个线程中的步骤,考虑了gradle中某些不推荐使用的方法(compile vs Implement),但当我尝试使用volley类创建请求时,它们不会被识别。 任何关于什么可能是向上的和/或什么我应该检查的想法将非常感谢!