HTTP Post problem

Diskussion i 'Frågor, support och diskussion' startad av samster93, 5 nov 2010.

  1. samster93

    samster93 Adult Droid Medlem

    Blev medlem:
    16 nov 2009
    Inlägg:
    651
    Mottagna gillanden:
    6

    MINA ENHETER

    Jag har nyss börjat lite med android programmering och har stött på ett litet problem nämnligen att när jag följer http://www.androidsnippets.org/snippets/36/index.html för att skapa en app som skickar http post meddelanden så verkar det inte som att det kommer iväg några medelanden hoppas ni förstår var jag menar annars får ni bara fråga.
     
  2. Dalla

    Dalla Youth Droid Medlem

    Blev medlem:
    1 maj 2010
    Inlägg:
    145
    Mottagna gillanden:
    3

    MINA ENHETER

    Välkommen in i värmen :-)

    För att folk här skall kunna hjälpa dig så är det alltid bra om du postar koden som du har skrivit, det blir lättare att hjälpa till då! Länken du har postat innehåller ju bara en metod, vi behöver veta hur/var du försöker exekvera koden också.
     
  3. samster93

    samster93 Adult Droid Medlem

    Blev medlem:
    16 nov 2009
    Inlägg:
    651
    Mottagna gillanden:
    6

    MINA ENHETER

    Så här är den koden jag testade sist men jag har även testat att lägga koden inom en egen public void precis innan onCreate. Hoppas att det räcker annars är det bara att fråga på efeter mer info.
    Kod:
    package st.sjobergsson.beta;
    
    import java.io.IOException;
    import java.util.ArrayList;
    import java.util.List;
    
    import org.apache.http.NameValuePair;
    import org.apache.http.client.ClientProtocolException;
    import org.apache.http.client.HttpClient;
    import org.apache.http.client.entity.UrlEncodedFormEntity;
    import org.apache.http.client.methods.HttpPost;
    import org.apache.http.impl.client.DefaultHttpClient;
    import org.apache.http.message.BasicNameValuePair;
    import android.app.Activity;
    import android.os.Bundle;
    import android.view.KeyEvent;
    import android.webkit.WebView;
    import android.webkit.WebViewClient;
    
    public class beta extends Activity {
             	
    	WebView mWebView;
    	
        /** Called when the activity is first created. */
        @Override
        public void onCreate(Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);
            setContentView(R.layout.main);
            
          //Create a new HttpClient and post header
    		HttpClient httpclient = new DefaultHttpClient();
    		HttpPost httppost = new HttpPost("http://samster93.zoka.cc/android/getProduct.php");
    
    	        try {
    	        	//Add your data
    	    	    List<NameValuePair> nameValuePairs = new ArrayList<NameValuePair>();
    	    	    nameValuePairs.add(new BasicNameValuePair("test", "hej"));
    
    	    	    httppost.setEntity(new UrlEncodedFormEntity(nameValuePairs));
    	    	    
    	    	    //Execute HTTP Post Request
    	    	    httpclient.execute(httppost);
    	    	    
    	        } catch (ClientProtocolException e) {
    	        	
    	        } catch (IOException e) {
    	        	
    	        }
    	
            
            
            mWebView = (WebView) findViewById(R.id.webview);
            mWebView.getSettings () .setJavaScriptEnabled(true);
            mWebView.loadUrl("http://samster93.zoka.cc/android/getProduct.php");
            mWebView.setWebViewClient(new WebViewClient());
        }
        @Override
        public boolean onKeyDown(int keyCode, KeyEvent event) {
        	if ((keyCode == KeyEvent.KEYCODE_BACK) && mWebView.canGoBack()) {
        		mWebView.goBack();
        		return true;
        	}
        	return super.onKeyDown(keyCode, event);
        }
    }
     
  4. Dalla

    Dalla Youth Droid Medlem

    Blev medlem:
    1 maj 2010
    Inlägg:
    145
    Mottagna gillanden:
    3

    MINA ENHETER

    Förstår inte riktigt vad det är du försöker göra här.

    Antar att du har satt upp en server som du försöker anropa med
    http://samster93.zoka.cc/android/getProduct.php ?

    Får du upp någon när du kör mWebView.loadUrl("http://samster93.zoka.cc/android/getProduct.php"); ?

    Om det bara är httpclient.execute(httppost); som du har problem med så kan du börja med att sätta in loggning i catch-blocken som är helt tomma nu, du kanske får ett exception som du aldrig ser...
     
  5. samster93

    samster93 Adult Droid Medlem

    Blev medlem:
    16 nov 2009
    Inlägg:
    651
    Mottagna gillanden:
    6

    MINA ENHETER

    Det är korrekt gissat att jag har satt upp en server som jag försöker anropa som bara ska ska skriva ut det den får i post men skulle du kunna ge åtminstone en lite hint om hur man sätter upp loggning i catch blocken.

    EDIT: när jag kör webviewen får jag upp sidan men med tomt där post strängen skulle stå.
     
  6. liato

    liato Adult Droid Medlem

    Blev medlem:
    6 maj 2010
    Inlägg:
    982
    Mottagna gillanden:
    361

    MINA ENHETER

    När du kör:
    Kod:
    httpclient.execute(httppost);
    så returneras ett HttpResponse-objekt. Det är detta objekt du får använda dig av för att se vad webservern har returnerat.

    WebView som du skapar senare utför ingen POST så att det är tomt där poststrängen ska stå är inte så konstigt.
     
  7. samster93

    samster93 Adult Droid Medlem

    Blev medlem:
    16 nov 2009
    Inlägg:
    651
    Mottagna gillanden:
    6

    MINA ENHETER

    okej tack