0

私はこのコードに取り組んでおりname、人の発言をWebページに投稿していますが、何らかの理由で機能していません...ある程度機能しています。logcatに表示されるコードで印刷シーケンスを指定しました....

これは私のMainActivity

public class MainActivity extends Activity {
String link="http://myweb.com/index.php";
String name1 = "akhil";
String value="name"+name1;
Button bttn1;
@Override
public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);

    bttn1 = (Button)findViewById(R.id.bttn1);
    bttn1.setOnClickListener(new View.OnClickListener() {

        public void onClick(View arg0) {
            // TODO Auto-generated method stub
            try{
            post_connection obj = new post_connection();
            obj.connect(link,value);                
            }
            catch (Exception e) {
                // TODO: handle exception
                Toast.makeText(getApplicationContext(), e.getMessage(), Toast.LENGTH_LONG).show();
            }
        }
    });        

}   

}

post_connectionのクラスは以下のとおりです

public class post_connection {

public void connect(String link , String value)
{

    try
    {
        URLConnection url = new URL(link).openConnection();
        if(url instanceof HttpURLConnection) {


              // do stuff

            System.out.println("@@@3");
            System.out.println("@@@3");

            System.out.println("@@@32");
            ((HttpURLConnection) url).setRequestMethod("POST");
            ((HttpURLConnection) url).setAllowUserInteraction(true);
            ((HttpURLConnection) url).setDoInput(true);
            ((HttpURLConnection) url).setDoOutput(true);
            ((HttpURLConnection) url).setUseCaches(true);
            System.out.println("@@@4");
            System.out.println("Making the request");
            ((HttpURLConnection)url).connect();
            System.out.println("connecting.....");

            DataOutputStream data = new DataOutputStream(((HttpURLConnection) url).getOutputStream());
            data.writeBytes(value);
            BufferedReader bufferedReader = new BufferedReader(new InputStreamReader(((HttpURLConnection) url).getInputStream()));
            System.out.println("@@@5");
            String decodedString;
            while((decodedString=bufferedReader.readLine())!=null)
            {
                System.out.println("decoded::"+decodedString);
            }
            bufferedReader.close();
            }
            else {
              // error?
                System.out.println("@@@23");
            }

    }
    catch (Exception e) {
        // TODO: handle exception
        e.printStackTrace();
    }


}

}

これは、次のようなlogcat出力を示しています

4

3 に答える 3

0

あなたが試すことができます:

    public static String makePostRequest(String url, Bundle params) throws IOException {
         HttpClient httpclient = new DefaultHttpClient();      
         HttpPost httppost = new HttpPost(url);
         List<NameValuePair> postParameters = new ArrayList<NameValuePair>();
         for (String key : params.keySet()) {
             postParameters.add(new BasicNameValuePair(URLEncoder.encode(key), URLEncoder.encode(params.getString(key))));
         }
         UrlEncodedFormEntity formEntity = new UrlEncodedFormEntity(postParameters);
         httppost.setEntity(formEntity);
         ResponseHandler<String> responseHandler = new BasicResponseHandler();
         return httpclient.execute(httppost, responseHandler);
    }
于 2012-07-31T11:23:09.163 に答える
0

post_connection クラスを次のように書き換えることができます。

public class post_connection {

public void connect(String link , String value){


try
{
    HttpClient httpclient = new DefaultHttpClient();
    HttpResponse response;
    HttpPost httpost;
    String responseString = null;

        // do stuff


        httpost = new HttpPost(link);

    /*StringEntity se = new StringEntity(value);

        httpost.setEntity(se);*/


       List<NameValuePair> params = new ArrayList<NameValuePair>();

       params.add(new BasicNameValuePair("name", value));

       UrlEncodedFormEntity formEntity = null;
       try {
            formEntity = new UrlEncodedFormEntity(params);

        } catch (UnsupportedEncodingException e1) {


        }

         httppost.setEntity(formEntity);

        System.out.println("Making the request");

        response = httpclient.execute(httpost);

        //getting the response

        StatusLine statusLine = response.getStatusLine();

        if(statusLine.getStatusCode() == HttpStatus.SC_OK){

            ByteArrayOutputStream out = new ByteArrayOutputStream();
            response.getEntity().writeTo(out);
            out.close();
            responseString = out.toString();


        } else{

            //Closes the connection.
            response.getEntity().getContent().close();
            throw new IOException(statusLine.getReasonPhrase());
        }

} 
catch (Exception e) {
    // TODO: handle exception
    e.printStackTrace();
}

}

于 2012-07-31T11:44:09.757 に答える
0

次のように URL 書き換えを試してください。

url = url+"?Param1=Value1&Param2=value2";
           ^ Rewriter    ^ Parameter Delimeter

そして、編集したURLの上に投稿します。

于 2012-07-31T11:14:16.187 に答える