-1

関連するすべてのスレッドを調べましたが、まだ成功していません。以下のコードを使用して、JSON をサーバーに投稿しています。しかし、JSON データは URL に投稿されません。

public static JSONObject PostJSONFromUrl(String urlString , String jsontosend ) 
    {
        Log.e(" Api-Hit urlString " , " is "+urlString);
        HttpClient client = new DefaultHttpClient();
        HttpResponse response;
        JSONObject json = null ;
        String tmpstr ;

        try {
                HttpPost post = new HttpPost(urlString);
                StringEntity se = new StringEntity(jsontosend);  
                se.setContentType(new BasicHeader(HTTP.CONTENT_TYPE, "application/json"));
                post.setEntity(se);
                response = client.execute(post);

                //Checking response 
                if(response!=null)
                {
                    tmpstr = EntityUtils.toString(response.getEntity());
                    json = new JSONObject(tmpstr);
                }
        } 
        catch(Exception e) 
        {
            e.printStackTrace();
        }

        Log.e(" Api-Hit return data " , " is "+json);
        return json;

    }

どこが間違っているのかわかりません。

サーバー側から戻りデータを JSON として取得しています。サーバーに送信された JSON が空の場合、受信するはずの「無効なデータ」エラーが発生します。

前もって感謝します 。

4

1 に答える 1

0

これを試して:

      public class HttpClientService{
private String LOG_TAG = "HttpClientService";
private DefaultHttpClient httpclient;
//private String WEBSERVER_URL = "";

public HttpClientService(final Context context){
    httpclient = new DefaultHttpClient();
    httpclient.getCredentialsProvider().setCredentials(
            new AuthScope(null, -1),
            new UsernamePasswordCredentials("admin","pass"));
}
public JSONObject executeServiceWithParams(final String params) {
    String aURL = WEBSERVER_URL + "?" + params.replace(" ", "%20");
    //aURL = aURL.replace("\n", "");

    aURL = aURL.replace("\n", "?????");
    Log.d(LOG_TAG, "Service = "+ aURL);

    System.out.println("------ Service URL --------"+aURL);

    HttpPost httppost = new HttpPost(aURL);
    try {
        // Execute HTTP Post Request
        HttpResponse response = httpclient.execute(httppost);
        final InputStream responseStream = response.getEntity().getContent();

        if(responseStream != null){
            final JSONObject result = getJsonObjectFromStream(responseStream);
            return result;
        }
        return null;

    } catch (Exception e) {
        // TODO Auto-generated catch block
        Log.d(LOG_TAG, "exception generated while login "+ e.toString());
    }
    return null;
}
于 2013-09-13T12:30:17.943 に答える