发送POST请求到基于Django的后端 - java

我正在尝试从Android设备向基于Django的后端发送POST请求。我正在尝试使用这些方法,

方法1

private String GetPickUpDetails(String pick_up_id2) {

        StringBuilder response  = new StringBuilder();
        String stringUrl=Constants.PICKUP_DETAILS+pick_up_id2+"/";
        URL url;
        try {
            url = new URL(stringUrl);

            HttpURLConnection httpconn = (HttpURLConnection)url.openConnection();
            if (httpconn.getResponseCode() == HttpURLConnection.HTTP_OK)
            {
                BufferedReader input = new BufferedReader(new InputStreamReader(httpconn.getInputStream()),8192);
                String strLine = null;
                while ((strLine = input.readLine()) != null)
                {
                    response.append(strLine);
                }
                input.close();
            }
        } catch (Exception e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }
        System.out.println("This si the response march API "+response.toString()+" for url"+stringUrl);
        return response.toString();


    }

响应

03-20 12:32:32.120: I/System.out(7442): This si the response march API <!doctype html>  <!--[if IE 7]>    <html class="no-js ie7 oldie" lang="en"> <![endif]-->  <!--[if IE 8]>    <html class="no-js ie8 oldie" lang="en"> <![endif]-->  <!--[if gt IE 8]><!--> <html class="no-js" lang="en"> <!--<![endif]-->  <head>    <meta charset="utf-8">    <title>ECOM</title>            <meta http-equiv="X-UA-Compatible" content="IE=Edge;chrome=1" >    <meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0">            <meta name="description" content="">    <meta name="author" content="">        <meta name="apple-mobile-web-app-capable" content="yes" />        <meta name="apple-mobile-web-app-status-bar-style" content="black-translucent" />            <meta property="og:image" content="http://www.domain.com/images/logo.png"/>    <meta property="og:title" content="-- description here --"/>    <meta property="og:url" content="http://www.domain.com"/>            <link rel="shortcut icon" href="/static/assets/img/favicon.ico" />    <link rel="apple-touch-icon" href="/static/assets/img/apple-touch-icon.png">    <link rel="apple-touch-icon" sizes="72x72" href="/static/assets/img/apple-touch-icon-72x72.png">    <link rel="apple-touch-icon" sizes="114x114" href="/static/assets/img/apple-touch-icon-114x114.png">             <link rel="stylesheet" href="/static/assets/css/styles.css" />                    <script src="/static/assets/js/libs/modernizr.custom.60077.js"></script>          <link rel="stylesheet" href="/static/assets/css/popup.css" />             <script src="/static/assets/js/jquery-1.7.2.min.js"></script>           <script src="/static/assets/authentication/js/popup.js"></script>    </head><body><div id="backgroundPopup"></div>      <div class="header" style="text-align:center; padding-top:10px;">       <img src="/static/assets/img/Ecomlogo.png"/>  </div>   <div class="container-fluid" roll="main" id="main">    <div class="span6"><a href="/track_me/scan_open/1/" class="forgotpass pull-right">Track Shipment</a>      <div class="login">        <div class="title">          Login                  </div>                <div class="content-login">          <form action="." method="POST">          <div style='display:none'><input type='hidden' name='csrfmiddlewaretoken' value='xpfLvzIES8w6qzpi7kCFp0crWx9aZHGD' /></div>              <input type= "text" name ="username" placeholder="Username" class="user-name"/>            <input type= "Password" name="password" placeholder="Password"/>            <input type="submit" class="button-login"/>            <a href="#" class="forgotpass pull-right" id="forgotpass">Forgot Your Password?</a>          </form>        </div>      </div>    </div>    <div class="span6">      <div class="login">        <div class="title">          Ecom Express News                  </div>        <div class="content-login">                  </div>      </div>    </div>  </div>       <!-- modal -->  <div class="modal hide modal-add-revlet" id="add-revlet">    <div class="modal-header">      <a class="close" data-dismiss="modal">×</a>      <h3>Record</h3>    </div>    <div class="modal-body">          </div>  </div><!--modal end-->   <div id="popupContact">             <a id="popupContactClose">x</a>    </div>        <!-- uncomment pre-deloy -->  <!--<script src="//ajax.googleapis.com/ajax/libs/jquery/1.7.1/jquery.min.js"></script>-->  <script>window.jQuery || document.write('<script src="assets/js/libs/jquery-1.7.1.min.js"><\/script>')</script>  <!-- bootstrap -->  <script src="/static/assets/js/bootstrap-transition.js"></script>  <script src="/static/assets/js/bootstrap-alert.js"></script>  <script src="/static/assets/js/bootstrap-modal.js"></script>  <script src="/static/assets/js/bootstrap-dropdown.js"></script>  <script src="/static/assets/js/bootstrap-scrollspy.js"></script>  <script src="/static/assets/js/bootstrap-tab.js"></script>  <script src="/static/assets/js/bootstrap-tooltip.js"></script>  <script src="/static/assets/js/bootstrap-popover.js"></script>  <script src="/static/assets/js/bootstrap-button.

方法2

try {
            // Add your data
            List<NameValuePair> nameValuePairs = new ArrayList<NameValuePair>(2);
            nameValuePairs.add(new BasicNameValuePair("scanned", jsonScanned.toString()));
            nameValuePairs.add(new BasicNameValuePair("unscanned",jsonUnscanned.toString()));
            nameValuePairs.add(new BasicNameValuePair("pickupid", pick_up_id));
            httppost.setEntity(new UrlEncodedFormEntity(nameValuePairs));

            // Execute HTTP Post Request
            response = httpclient.execute(httppost);

        } catch (ClientProtocolException e) {
            // TODO Auto-generated catch block
        } catch (IOException e) {
            // TODO Auto-generated catch block
        }

        if (response.getStatusLine().getStatusCode() == 200)
        {
            HttpEntity entity = response.getEntity();
            try {
                json = EntityUtils.toString(entity);
            } catch (ParseException e) {
                // TODO Auto-generated catch block
                e.printStackTrace();
            } catch (IOException e) {
                // TODO Auto-generated catch block
                e.printStackTrace();
            }
        }
        System.out.println("this is response"+json);
        int iTmp=response.getStatusLine().getStatusCode();

        return response.toString(); 

响应

org.apache.http.message.BasicHttpResponse@40525230

在进一步学习中,我收到上述请求的错误403。

请指出我在此方法中犯的错误。也欢迎使用其他方法以及摘要。

编辑1
我得到的HTTP响应为200.代码的HttpEntity entity = response.getEntity();值为org.apache.http.conn.BasicMangedEntity@4055505d0

参考方案

您没有说第一种方法有什么问题。

在第二种情况下,如果您获得403,则可能是由于跨站点请求伪造保护(CSRF)。请参阅the docs以了解有关操作。

SOAPFaultException部署在Tomcat上时,但在GlassFish中工作正常 - java

朋友们,我一直在尝试很多,阅读了很多论坛,但无法理解为什么出现此问题。我使用契约优先方法创建了一个Jax-WS WebService。创建WSDL和XSD,然后使用wsimport工具生成其余工件,为SEI提供实现。将WebService应用程序部署到Eclipse Helios中的GlassFish(Glassfish适配器和Eclipse中安装的插件)。…

页面加载而不是提交时发生struts验证 - java

请原谅我;我对Struts有点陌生。我遇到一个问题,即页面加载而不是我实际提交表单时发生了验证。我整天都在论坛上搜寻和搜寻,没有任何运气。我显然做错了一些事情,应该很容易确定,但是我还没有发现问题所在。这是我的struts.xml的片段:<action name="*Test" method="{1}" clas…

DataSourceTransactionManager和JndiObjectFactoryBean和JdbcTemplate的用途是什么? - java

以下的用途是什么:org.springframework.jdbc.core.JdbcTemplate org.springframework.jdbc.datasource.DataSourceTransactionManager org.springframework.jndi.JndiObjectFactoryBean <tx:annotatio…

Struts2中的错误处理 - java

我对如何在Struts2中进行错误处理感到困惑。我希望在发生错误时将用户引导到一个中心页面。此外,当发生错误时,我希望将其记录下来,因为我使用的是log4j,因此我将其记录为log.error(e.getMessage(), e);但是,在动作类中,如果我捕获到错误(将我的所有代码放入try / catch中),则不会出现中央/常见错误页面。因此,我决定不捕…

在XSL中访问Hashmap时出现问题 - java

假设,我有一段代码: Map mappingId = new HashMap(); mappingId.put("1", "1000"); transformer.setParameter("mappingId", mappingId); transformer.transform(...); 我有…