Soru & Cevap

HTTPS post işlemi

01.04.2015 - 03:56

Merhaba arkadaşlar bir wep sitesine https ile kullanıcı adını ve mail adresini post etmek istiyorum. Ama ne yaptıysam ne kadar araştırma yaptıysam bir türlü olmadı. Ana bilgisayar tarafından reddedildi diyor. Bilgiler doğru zaten yanlış olsa integer bir değer dönecek.

 DefaultHttpClient httpclient = new DefaultHttpClient();
        HttpPost httppost = new HttpPost("https://212xxxxxxxxxxxxxxxxxxxx");
        
        try {
           
            List<NameValuePair> nameValuePairs = new ArrayList<NameValuePair>(1);
            nameValuePairs.add(new BasicNameValuePair("email", "birisi"));
            nameValuePairs.add(new BasicNameValuePair("password", "qweqeqeq"));
            
            httppost.setEntity(new UrlEncodedFormEntity(nameValuePairs));
            
            Toast.makeText(getApplicationContext(), "333-",1).show();

            // Execute HTTP Post Request
            HttpMessage response = httpclient.execute(httppost); /// bu satırda hata veriyor. Bu konuda bilgisi veya böyle bir sistem kullanan arkadaşlar yardımcı olabilirler mi ?

hata kodu 

[2015-04-01 15:52:57 - ddmlib] Kurulan bir bağlantı, ana bilgisayarınızdaki yazılım tarafından iptal edildi
java.io.IOException: Kurulan bir bağlantı, ana bilgisayarınızdaki yazılım tarafından iptal edildi
    at sun.nio.ch.SocketDispatcher.write0(Native Method)
    at sun.nio.ch.SocketDispatcher.write(Unknown Source)
    at sun.nio.ch.IOUtil.writeFromNativeBuffer(Unknown Source)
    at sun.nio.ch.IOUtil.write(Unknown Source)
    at sun.nio.ch.SocketChannelImpl.write(Unknown Source)
    at com.android.ddmlib.JdwpPacket.writeAndConsume(JdwpPacket.java:213)
    at com.android.ddmlib.Client.sendAndConsume(Client.java:675)
    at com.android.ddmlib.HandleHeap.sendREAQ(HandleHeap.java:342)
    at com.android.ddmlib.Client.requestAllocationStatus(Client.java:521)
    at com.android.ddmlib.DeviceMonitor.createClient(DeviceMonitor.java:831)
    at com.android.ddmlib.DeviceMonitor.openClient(DeviceMonitor.java:799)
    at com.android.ddmlib.DeviceMonitor.processIncomingJdwpData(DeviceMonitor.java:759)
    at com.android.ddmlib.DeviceMonitor.deviceClientMonitorLoop(DeviceMonitor.java:648)
    at com.android.ddmlib.DeviceMonitor.access$100(DeviceMonitor.java:44)
    at com.android.ddmlib.DeviceMonitor$3.run(DeviceMonitor.java:576)

 

 

 

204 Görüntülenme

3 Cevap

Sitedeki sorulara cevap verebilmek için giriş yapın ya da üye olun.

picture-2176-1429627808.jpg
bekirdursun
01.04.2015 - 10:37

Buradaki çözümü uygulayabilirsin,

Profile picture for user muhammetayan55
muhammetayan55
01.04.2015 - 07:07

Hocam öncelikle teşekkür ediyorum. Linki inceledim ama bunlar hep http yi post ediyor. Benim https yi post etmem gerek. https://developer.android.com/training/articles/security-ssl.html#Concepts burada anlatmış ama bir türlü beceremedim.  denilen örneği yapmaya çalıştım.  Ama yine aynı hatayı veriyor

Kurulan bir bağlantı, ana bilgisayarınızdaki yazılım tarafından iptal edildi
java.io.IOException: Kurulan bir bağlantı, ana bilgisayarınızdaki yazılım tarafından iptal edildi

Async sınıfım bu aşağıdaki method "copyInputStreamToOutputStream" sanırım böyle olmaması gerekiyor bir open ssl kütüphanesindeki bir sınıf olabilir diye düşünüyorum. Yanlız Kurulan bağlantı neden iptal ediliyor onu anlamıyorum... 

class SendHttpRequestTask extends AsyncTask<String, Void, String> {


    @Override
    protected String doInBackground(String... params) {
        URL url = null;
        try {
            url = new URL("https://wikipedia.org");
        } catch (MalformedURLException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }
        URLConnection urlConnection = null;
        try {
            urlConnection = url.openConnection();
        } catch (IOException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }
        InputStream in = null;
        try {
            in = urlConnection.getInputStream();
        } catch (IOException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }
        copyInputStreamToOutputStream(in, System.out);
        

        return "";
    }

    @Override
    protected void onPostExecute(String result) {
       


    }

    private void copyInputStreamToOutputStream(InputStream in, PrintStream out) {
        
        // TODO Auto-generated method stub
        

        Log.i("******************", "adada**********************");
        
    }
}

işin enterasan tarafı internet izni vermeden denediğimde log da bu mesajı görebiliyorum 

Profile picture for user srtcbzncr
srtcbzncr
01.04.2015 - 06:38

http://www.mobilhanem.com/android-http-post-ve-asynctask-kullanimi/

Bu linki inceleyebilir misin? Burada http post ve get işlemleri için kullanabileceğin bir class var o classı kullanarak daha rahat bir şekilde yapabilirsin işlemini