0

少し問題があります。すべての連絡先を電話からサーバーに送信する必要があります。このコードは、20または40の連絡先でJSONObjectを送信すると機能しますが、400の連絡先を送信するとこのエラーが返されます

<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML 2.0//EN">
<html><head>
 <title>400 Bad Request</title>
 </head><body>
 <h1>Bad Request</h1>
 <p>Your browser sent a request that this server could not understand.<br />
Size of a request header field exceeds server limit.<br />
  <pre>
  json
 </pre>/n</p>
  <hr>
  <address>Apache Server at default Port 80</address>
 </body></html>

これがコードの動作です

public String postData(String url,JSONObject obj) {
        // Create a new HttpClient and Post Header

        HttpParams myParams = new BasicHttpParams();
        HttpConnectionParams.setConnectionTimeout(myParams, 10000);
        HttpConnectionParams.setSoTimeout(myParams, 10000);
        HttpClient httpclient = new DefaultHttpClient(myParams);
        String json=obj.toString();

        try {

            HttpPost httppost = new HttpPost(url.toString());
            httppost.setHeader("json", obj.toString());

           StringEntity se = new StringEntity(obj.toString()); 
           se.setContentEncoding(new BasicHeader(HTTP.CONTENT_TYPE, "application/json"));
            httppost.setEntity(se); 

            HttpResponse response = httpclient.execute(httppost);
            String temp = EntityUtils.toString(response.getEntity());
            Log.i("post_data2 - popolo", temp);

             return temp;

        } 

ご回答ありがとうございます

/ * ** * ** * ** * ** * ** * ** * ** * ** * ** * **

私は自分自身を解決しました。それが誰かに役立つことを願っています。私はこれのために関数postDataを変更しました。

public void postinsert(String url,String unico_id) {


        try{
            unico_id = URLEncoder.encode("unique_id", "UTF-8") + "=" + URLEncoder.encode(unico_id, "UTF-8");
            URL url1 =new URL(url);
              URLConnection con = (URLConnection) url1.openConnection();
              con.setDoOutput(true);
              OutputStreamWriter wr = new OutputStreamWriter(con.getOutputStream());
              wr.write(unico_id);
              wr.flush();
              BufferedReader recv = new BufferedReader(new InputStreamReader(con.getInputStream()));
              //Los mostramos por pantalla
               s = recv.readLine();
              while(s!=null){
                      System.out.println(s);
                      s=recv.readLine();
                    }
           }catch (Exception e){
               System.out.println(e.getMessage());
           }

        }
4

0 に答える 0