Saturday 15 January 2011

android - Trying to send JSON requests, get java.lang.IllegalStateException: Target host must not be null, or set in parameters -



android - Trying to send JSON requests, get java.lang.IllegalStateException: Target host must not be null, or set in parameters -

i error when seek button click.

11-05 22:12:30.797 31048-31048/applicatoin w/system.err﹕ java.lang.illegalstateexception: target host must not null, or set in parameters. scheme=null, host=null, path=172.27.123.71 11-05 22:12:30.797 31048-31048/applicatoin w/system.err﹕ @ org.apache.http.impl.client.defaultrequestdirector.determineroute(defaultrequestdirector.java:591) 11-05 22:12:30.797 31048-31048/applicatoin w/system.err﹕ @ org.apache.http.impl.client.defaultrequestdirector.execute(defaultrequestdirector.java:293) 11-05 22:12:30.797 31048-31048/applicatoin w/system.err﹕ @ org.apache.http.impl.client.abstracthttpclient.execute(abstracthttpclient.java:555) 11-05 22:12:30.797 31048-31048/applicatoin w/system.err﹕ @ org.apache.http.impl.client.abstracthttpclient.execute(abstracthttpclient.java:487) 11-05 22:12:30.797 31048-31048/applicatoin w/system.err﹕ @ applicatoin.mainactivity$1.onclick(mainactivity.java:79) 11-05 22:12:30.797 31048-31048/applicatoin w/system.err﹕ @ android.view.view.performclick(view.java:4438) 11-05 22:12:30.797 31048-31048/applicatoin w/system.err﹕ @ android.view.view$performclick.run(view.java:18422) 11-05 22:12:30.797 31048-31048/applicatoin w/system.err﹕ @ android.os.handler.handlecallback(handler.java:733) 11-05 22:12:30.797 31048-31048/applicatoin w/system.err﹕ @ android.os.handler.dispatchmessage(handler.java:95) 11-05 22:12:30.797 31048-31048/applicatoin w/system.err﹕ @ android.os.looper.loop(looper.java:136) 11-05 22:12:30.797 31048-31048/applicatoin w/system.err﹕ @ android.app.activitythread.main(activitythread.java:5017) 11-05 22:12:30.797 31048-31048/applicatoin w/system.err﹕ @ java.lang.reflect.method.invokenative(native method) 11-05 22:12:30.797 31048-31048/applicatoin w/system.err﹕ @ java.lang.reflect.method.invoke(method.java:515) 11-05 22:12:30.797 31048-31048/applicatoin w/system.err﹕ @ com.android.internal.os.zygoteinit$methodandargscaller.run(zygoteinit.java:779) 11-05 22:12:30.797 31048-31048/applicatoin w/system.err﹕ @ com.android.internal.os.zygoteinit.main(zygoteinit.java:595) 11-05 22:12:30.797 31048-31048/applicatoin w/system.err﹕ @ dalvik.system.nativestart.main(native method)

i trying send json post request server. here code:

package applicatoin; import android.app.activity; import android.os.bundle; import android.view.menu; import android.view.menuitem; import android.widget.button; import android.widget.edittext; import android.view.view; import android.view.view.onclicklistener; import org.apache.http.httpentity; import org.apache.http.httpresponse; import org.apache.http.client.httpclient; import org.apache.http.client.methods.httppost; import org.apache.http.entity.stringentity; import org.apache.http.impl.client.defaulthttpclient; import org.apache.http.protocol.basichttpcontext; import org.apache.http.protocol.httpcontext; import org.apache.http.util.entityutils; public class mainactivity extends activity { button sendipbutton; //button sending ip address edittext medit; //get info user enters in form //textview mtext; @override protected void oncreate(bundle savedinstancestate) { super.oncreate(savedinstancestate); setcontentview(r.layout.activity_main); /*get reference views*/ sendipbutton = (button) findviewbyid(r.id.sendip); medit = (edittext) findviewbyid(r.id.enterip); /*add click listener button "sendipbutton"*/ sendipbutton.setonclicklistener(new onclicklistener() { @override public void onclick(view arg0) { //add json logic here string ip = (medit).gettext().tostring(); string json = "{\"lights\": [{\"lightid\": 1, \"red\":242,\"green\":116,\"blue\":12, \"intensity\": 0.5}],\"propagate\": true}"; httpclient httpclient = new defaulthttpclient(); httpcontext httpcontext = new basichttpcontext(); httppost httppost = new httppost(ip); seek { stringentity se = new stringentity(json); httppost.setentity(se); httppost.setheader("accept", "ms3/json"); httppost.setheader("content-type", "ms3/json"); httpresponse response = httpclient.execute(httppost, httpcontext); httpentity entity = response.getentity(); string jsonstring = entityutils.tostring(entity); } grab (exception e){ e.printstacktrace(); } medit = (edittext)findviewbyid(r.id.enterip); //get text form? } }); // addlisteneronbutton(); //added button send ip address } public void sendjsontest(view view){ switch (view.getid()){ case r.id.sendip: string ip = (medit).gettext().tostring(); string json = "{\"lights\": [{\"lightid\": 1, \"red\":242,\"green\":116,\"blue\":12, \"intensity\": 0.5}],\"propagate\": true}"; httpclient httpclient = new defaulthttpclient(); httpcontext httpcontext = new basichttpcontext(); httppost httppost = new httppost(ip); seek { stringentity se = new stringentity(json); httppost.setentity(se); httppost.setheader("accept", "ms3/json"); httppost.setheader("content-type", "ms3/json"); httpresponse response = httpclient.execute(httppost, httpcontext); httpentity entity = response.getentity(); string jsonstring = entityutils.tostring(entity); } grab (exception e){ e.printstacktrace(); } break; } } public void sendjsontest(string ip) { string json = "{\"lights\": [{\"lightid\": 1, \"red\":242,\"green\":116,\"blue\":12, \"intensity\": 0.5}],\"propagate\": true}"; httpclient httpclient = new defaulthttpclient(); httpcontext httpcontext = new basichttpcontext(); httppost httppost = new httppost(ip); seek { stringentity se = new stringentity(json); httppost.setentity(se); httppost.setheader("accept", "ms3/json"); httppost.setheader("content-type", "ms3/json"); httpresponse response = httpclient.execute(httppost, httpcontext); httpentity entity = response.getentity(); string jsonstring = entityutils.tostring(entity); } grab (exception e){ e.printstacktrace(); } } @override public boolean oncreateoptionsmenu(menu menu) { // inflate menu; adds items action bar if present. getmenuinflater().inflate(r.menu.menu_main, menu); homecoming true; } @override public boolean onoptionsitemselected(menuitem item) { // handle action bar item clicks here. action bar // automatically handle clicks on home/up button, long // specify parent activity in androidmanifest.xml. int id = item.getitemid(); //noinspection simplifiableifstatement if (id == r.id.action_settings) { homecoming true; } homecoming super.onoptionsitemselected(item); } }

i not sure cause of error is. button identify text in text field, when seek httprequest, scheme error. json in right format. server doesn't request.

use seprate classes sending json request show 1 single demo bundle applicatoin; import android.app.activity; import android.os.bundle; import android.view.menu; import android.view.menuitem; import android.widget.button; import android.widget.edittext; import android.view.view; import android.view.view.onclicklistener; import org.apache.http.httpentity; import org.apache.http.httpresponse; import org.apache.http.client.httpclient; import org.apache.http.client.methods.httppost; import org.apache.http.entity.stringentity; import org.apache.http.impl.client.defaulthttpclient; import org.apache.http.protocol.basichttpcontext; import org.apache.http.protocol.httpcontext; import org.apache.http.util.entityutils; public class mainactivity extends activity { button sendipbutton; //button sending ip address edittext medit; //get info user enters in form //textview mtext; @override protected void oncreate(bundle savedinstancestate) { super.oncreate(savedinstancestate); setcontentview(r.layout.activity_main); /*get reference views*/ sendipbutton = (button) findviewbyid(r.id.sendip); medit = (edittext) findviewbyid(r.id.enterip); /*add click listener button "sendipbutton"*/ sendipbutton.setonclicklistener(new onclicklistener() { @override public void onclick(view arg0) { //add json logic here new sendrequest().execute(); medit = (edittext)findviewbyid(r.id.enterip); //get text form? } }); // addlisteneronbutton(); //added button send ip address } } class sendrequest extends asynctask<void, void, void> { @override protected void doinbackground(void... params) { string ip = (medit).gettext().tostring(); string json = "{\"lights\": [{\"lightid\": 1, \"red\":242,\"green\":116,\"blue\":12, \"intensity\": 0.5}],\"propagate\": true}"; httpclient httpclient = new defaulthttpclient(); httpcontext httpcontext = new basichttpcontext(); httppost httppost = new httppost(ip); seek { stringentity se = new stringentity(json); httppost.setentity(se); httppost.setheader("accept", "ms3/json"); httppost.setheader("content-type", "ms3/json"); httpresponse response = httpclient.execute(httppost, httpcontext); httpentity entity = response.getentity(); string jsonstring = entityutils.tostring(entity); } grab (exception e){ e.printstacktrace(); } } }

android json post

No comments:

Post a Comment