0

最初は、私はこれらのことに慣れていないので、これが非常に基本的な質問ではないことを願っています. PHP WebからAndroidアプリケーションでデータを取得しようとしています。PHPにはデータを返す関数がいくつかありますが、それらを呼び出すには、最初にAndroidアプリケーションから送信して文字列を作成する必要があります。その方法を検索しようとしていますが、何も見つかりません。誰でも私を助けてもらえますか?ありがとう

4

1 に答える 1

1
 public void getServerData() throws JSONException, ClientProtocolException, IOException {               

        HttpParams httpParams = new BasicHttpParams();
        HttpConnectionParams.setConnectionTimeout(httpParams, TIMEOUT_MILLISEC);
        HttpConnectionParams.setSoTimeout(httpParams, TIMEOUT_MILLISEC);
        HttpClient client = new DefaultHttpClient(httpParams);
        HttpPost request = new HttpPost(url);

        request.setHeader( "Content-Type", "application/json" );        

        JSONObject json = new JSONObject();         
        json.put("type", "register");
        json.put("user_name", "colors");
        json.put("user_password", "colors123");

        Log.i("jason Object", json.toString());        

        StringEntity se = new StringEntity(json.toString());                 
        se.setContentEncoding("UTF-8");
        se.setContentType("application/json");    
        request.setEntity(se);        

        HttpResponse response = client.execute(request);        
        HttpEntity entity = response.getEntity();
        InputStream is = entity.getContent();
        String _response = convertStreamToString(is);
        System.out.println("res  " + _response);           
        int res_code = response.getStatusLine().getStatusCode();
        System.out.println(" code " +res_code); 
    }               
    private static String convertStreamToString(InputStream is) {

        BufferedReader reader = new BufferedReader(new InputStreamReader(is), 1856);
        StringBuilder sb = new StringBuilder();

        String line = null;
        try {
            while ((line = reader.readLine()) != null) {
                sb.append((line + "\n"));
            }
        } catch (IOException e) {
            e.printStackTrace();
        } finally {
            try {
                is.close();
            } catch (IOException e) {
                e.printStackTrace();
            }
        }
        return sb.toString();
    }
于 2012-06-01T09:06:38.487 に答える