The key part of your log is: org.json.JSONException: End of input at character 0 of
This means it does not think its input is a JSON type format. I had the same error and ended up using some different code but never bothered to sort out exactly what was going wrong - sorry. Here is my code that works for Twitter. Maybe you can see something:: private Thread checkUpdate = new Thread() { public void run() { try { / // String Text = URLEncoder.encode("Android", "UTF-8"); // http://cloudcollaboration.appspot.com/SecondGetter?content=qaz URL updateURL = new URL("http://search.twitter.com/ search.json?q="+string_from_speaker); // Log.d("wwww", "44" + Text); URLConnection conn = updateURL.openConnection(); InputStream is = conn.getInputStream(); BufferedInputStream bis = new BufferedInputStream(is); ByteArrayBuffer baf = new ByteArrayBuffer(50); int current = 0; while((current = bis.read()) != -1){ baf.append((byte)current); } /* Convert the Bytes read to a String. */ html = new String(baf.toByteArray()); // Log.d("wwww", "3" + html); mHandler.post(showUpdate); } catch (Exception e) { tv1.setText(" having trouble getting online"); } } }; private Runnable showUpdate = new Runnable(){ public void run(){ try { jObject = new JSONObject(html); JSONArray sessions = jObject.getJSONArray("results"); for (int i = 0; i < sessions.length(); i++) { JSONObject session = sessions.getJSONObject(i); Tweet tweet = new Tweet(); tweet.content = session.getString("text"); tweet.author = session.getString("from_user"); tweets.add(tweet); } On May 16, 1:07 pm, Rocky <rkjhaw1...@gmail.com> wrote: > Hi all, > > I'm facing problem when trying to use JSON object to access the .net project > database. > please let me know, where i'm doing mistake, i given more than 4 days to > rectify. > > logcat details - > > 05-16 17:32:26.132: INFO/System.out(1656): response.getProtocolVersion() > =HTTP/1.0 > 05-16 17:32:26.132: INFO/System.out(1656): > response.getStatusLine().getStatusCode() =404 > 05-16 17:32:26.132: INFO/System.out(1656): > response.getStatusLine().getReasonPhrase() = Not Found > 05-16 17:32:26.141: INFO/System.out(1656): > response.getStatusLine().toString() =HTTP/1.0 404 Not Found > 05-16 17:32:26.141: INFO/System.out(1656): inside try 3 > 05-16 17:32:26.151: INFO/System.out(1656): connection entity.toString()= > org.apache.http.conn.BasicManagedEntity@43ea4288 > 05-16 17:32:26.161: INFO/global(1656): Default buffer size used in > BufferedReader constructor. It would be better to be explicit if an 8k-char > buffer is required. > 05-16 17:32:26.161: INFO/System.out(1656): result = > 05-16 17:32:26.171: WARN/System.err(1656): org.json.JSONException: End of > input at character 0 of > 05-16 17:32:26.182: WARN/System.err(1656): at > org.json.JSONTokener.syntaxError(JSONTokener.java:446) > 05-16 17:32:26.182: WARN/System.err(1656): at > org.json.JSONTokener.nextValue(JSONTokener.java:93) > 05-16 17:32:26.182: WARN/System.err(1656): at > org.json.JSONObject.<init>(JSONObject.java:154) > 05-16 17:32:26.182: WARN/System.err(1656): at > org.json.JSONObject.<init>(JSONObject.java:171) > 05-16 17:32:26.182: WARN/System.err(1656): at > com.sst.restaurant.RestJsonClient.connect(RestJsonClient.java:75) > 05-16 17:32:26.192: WARN/System.err(1656): at > com.sst.restaurant.LoginDetails.onClick(LoginDetails.java:141) > 05-16 17:32:26.192: WARN/System.err(1656): at > android.view.View.performClick(View.java:2408) > 05-16 17:32:26.192: WARN/System.err(1656): at > android.view.View$PerformClick.run(View.java:8816) > 05-16 17:32:26.192: WARN/System.err(1656): at > android.os.Handler.handleCallback(Handler.java:587) > 05-16 17:32:26.192: WARN/System.err(1656): at > android.os.Handler.dispatchMessage(Handler.java:92) > 05-16 17:32:26.212: WARN/System.err(1656): at > android.os.Looper.loop(Looper.java:123) > 05-16 17:32:26.306: DEBUG/dalvikvm(1656): GC_FOR_MALLOC freed 2764 objects / > 179392 bytes in 92ms > 05-16 17:32:26.306: WARN/System.err(1656): at > android.app.ActivityThread.main(ActivityThread.java:4627) > 05-16 17:32:26.306: WARN/System.err(1656): at > java.lang.reflect.Method.invokeNative(Native Method) > 05-16 17:32:26.311: WARN/System.err(1656): at > java.lang.reflect.Method.invoke(Method.java:521) > 05-16 17:32:26.311: WARN/System.err(1656): at > com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java: > 868) > 05-16 17:32:26.311: WARN/System.err(1656): at > com.android.internal.os.ZygoteInit.main(ZygoteInit.java:626) > 05-16 17:32:26.311: WARN/System.err(1656): at > dalvik.system.NativeStart.main(Native Method) > 05-16 17:32:26.321: WARN/System.err(1656): org.json.JSONException: No value > for Login > 05-16 17:32:26.321: WARN/System.err(1656): at > org.json.JSONObject.get(JSONObject.java:354) > 05-16 17:32:26.321: WARN/System.err(1656): at > org.json.JSONObject.getString(JSONObject.java:510) > 05-16 17:32:26.341: WARN/System.err(1656): at > com.sst.restaurant.LoginDetails.onClick(LoginDetails.java:142) > 05-16 17:32:26.341: WARN/System.err(1656): at > android.view.View.performClick(View.java:2408) > 05-16 17:32:26.341: WARN/System.err(1656): at > android.view.View$PerformClick.run(View.java:8816) > 05-16 17:32:26.341: WARN/System.err(1656): at > android.os.Handler.handleCallback(Handler.java:587) > 05-16 17:32:26.341: WARN/System.err(1656): at > android.os.Handler.dispatchMessage(Handler.java:92) > 05-16 17:32:26.341: WARN/System.err(1656): at > android.os.Looper.loop(Looper.java:123) > 05-16 17:32:26.341: WARN/System.err(1656): at > android.app.ActivityThread.main(ActivityThread.java:4627) > 05-16 17:32:26.341: WARN/System.err(1656): at > java.lang.reflect.Method.invokeNative(Native Method) > 05-16 17:32:26.341: WARN/System.err(1656): at > java.lang.reflect.Method.invoke(Method.java:521) > 05-16 17:32:26.352: WARN/System.err(1656): at > com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java: > 868) > 05-16 17:32:26.352: WARN/System.err(1656): at > com.android.internal.os.ZygoteInit.main(ZygoteInit.java:626) > 05-16 17:32:26.372: WARN/System.err(1656): at > dalvik.system.NativeStart.main(Native Method) > > my source code - jsno client code - > > public class RestJsonClient { > > public static JSONObject connect(String url) { > String result = null; > System.out.println("result = " + result); > HttpClient httpclient = new DefaultHttpClient(); > > // Prepare a request object > HttpGet httpget = new HttpGet("http://10.91.28.203"); > > // Execute the request > HttpResponse response; > > JSONObject json = new JSONObject(); > System.out.println("result = " + result); > System.out.println("json object " + json.toString()); > > try { > System.out.println("inside try 1"); > response = httpclient.execute(httpget); > > System.out.println("inside try 2"); > System.out.println("response.getProtocolVersion() =" > + response.getProtocolVersion()); > System.out.println("response.getStatusLine().getStatusCode() =" > + response.getStatusLine().getStatusCode()); > System.out.println("response.getStatusLine().getReasonPhrase() > = " > + response.getStatusLine().getReasonPhrase()); > System.out.println("response.getStatusLine().toString() =" > + response.getStatusLine().toString()); > > HttpEntity entity = response.getEntity(); > System.out.println("inside try 3"); > > System.out.println("connection entity.toString()= " > + entity.toString()); > > if (entity != null) { > > // A Simple JSON Response Read > InputStream instream = entity.getContent(); > result = convertStreamToString(instream); > System.out.println("result = " + result); > > json = new JSONObject(result); > > instream.close(); > } > > } catch (ClientProtocolException e) { > // TODO Auto-generated catch block > e.printStackTrace(); > } catch (IOException e) { > // TODO Auto-generated catch block > e.printStackTrace(); > } catch (JSONException e) { > // TODO Auto-generated catch block > e.printStackTrace(); > } > > return json; > } > > /** > * > * @param is > * @return String > */ > public static String convertStreamToString(InputStream is) { > BufferedReader reader = new BufferedReader(new > InputStreamReader(is)); > 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(); > } > > } > > LoginDetails page - > public class LoginDetails extends Activity implements OnClickListener { > > private static final int SERVER_PORT = 1311; > > private static final String DEB_TAG = "Json_Android"; > > private String SERVER_HOST = "http://localhost:1311/"; > > public static final String PREFS_NAME = "HelloAndroidPREFS"; > private SharedPreferences settings; > > private ProgressDialog progress; > JSONObject json; > > /* > * protected LoginScreen(Context paramContext) { super(paramContext); > * AppInstance.getInstance().LoadPreferences(paramContext); } > */ > > /** Called when the activity is first created. */ > > @Override > public void onCreate(Bundle icicle) { > > requestWindowFeature(Window.FEATURE_INDETERMINATE_PROGRESS); > > super.onCreate(icicle); > > // Restore preferences > > settings = getSharedPreferences(PREFS_NAME, 0); > > // load up the layout > > setContentView(R.layout.main3); > > // get the button resource in the xml file and assign it to a local > // variable of type Button > > Button login = (Button) findViewById(R.id.login_button); > > Log.i(DEB_TAG, "onCreate"); > > login.setOnClickListener(this); > > setUserNameText(settings.getString("Login", "")); > > setPasswordText(settings.getString("Password", "")); > > } > > public void setUserNameText(String $username) { > EditText usernameEditText = (EditText) > findViewById(R.id.txt_username); > usernameEditText.setText($username); > } > > public void setPasswordText(String username) { > EditText passwordEditText = (EditText) > findViewById(R.id.txt_password); > passwordEditText.setText(username); > > } > > /* > * > * (non-Javadoc) > * > * @see android.view.View.OnClickListener#onClick(android.view.View) > */ > > public void onClick(View v) { > > // Handle based on which view was clicked. > > Log.i(DEB_TAG + " onClick ", "onClick"); > > // this gets the resources in the xml file > > // and assigns it to a local variable of type EditText > > EditText usernameEditText = (EditText) > findViewById(R.id.txt_username); > > EditText passwordEditText = (EditText) > findViewById(R.id.txt_password); > > // the getText() gets the current value of the text box > > // the toString() converts the value to String data type > > // then assigns it to a variable of type String > > String sUserName = usernameEditText.getText().toString(); > > String sPassword = passwordEditText.getText().toString(); > > // call the backend using Get parameters (discouraged but works good > for > // this exampl <img > // > src="http://www.instropy.com/wp-includes/images/smilies/icon_wink.gif" > // alt=";)" class="wp-smiley"> ) > > String address = "http://" + SERVER_HOST + ":" + SERVER_PORT > + "/Login.aspx?action=login&Login=" + sUserName + > "&Password=" > + sPassword + ""; > > if ((usernameEditText == null) || (passwordEditText == null)) { > System.out.println("User Name does not exit"); > Toast.makeText(this.getBaseContext(), > "Invalid Username or password", 0).show(); > } else { > // display the username and the password in string format > // Toast.makeText(getBaseContext(), "valid Username or > password", > // 0).show(); > try { > > showBusyCursor(true); > > progress = ProgressDialog.show(this, > > "Please wait...", "Login in process", true); > > Log.i(DEB_TAG, "Username: " + sUserName + " Password: " > + sPassword); > > Log.i(DEB_TAG, "Requesting to " + address); > > json = RestJsonClient.connect(address); > System.out.println("json =" + json.getString("Login")); > > } catch (Exception e) { > > // TODO Auto-generated catch block > > e.printStackTrace(); > > showBusyCursor(false); > > }// end try > > progress.dismiss(); > > SharedPreferences.Editor editor = settings.edit(); > editor.putString("Login", sUserName); > editor.putString("Password", sPassword); > > editor.commit(); > showBusyCursor(false); > next(); > > }// end else > > }// end OnClick > > /* > > * > > */ > > private void showBusyCursor(Boolean $show) { > setProgressBarIndeterminateVisibility($show); > } > > private void next() { > // you can call another activity by uncommenting the above lines > Intent myIntent = new Intent(this.getBaseContext(), > RestaurantHome.class); > startActivityForResult(myIntent, 0); > } > /* > * protected String doInBackground(String[] paramArrayOfString) { > WebService > * localWebService = new WebService(); WebService.WebServiceCall > * localWebServiceCall = WebService.WebServiceCall.LOGIN; Object[] > * arrayOfObject = new Object[2]; String str1 = paramArrayOfString[0]; > * arrayOfObject[0] = str1; String str2 = paramArrayOfString[1]; > * arrayOfObject[1] = str2; return > * localWebService.execute(localWebServiceCall, true, arrayOfObject); } > */ > > } > > -- > Thanks & Regards > > Rakesh Kumar Jha -- You received this message because you are subscribed to the Google Groups "Android Developers" group. To post to this group, send email to android-developers@googlegroups.com To unsubscribe from this group, send email to android-developers+unsubscr...@googlegroups.com For more options, visit this group at http://groups.google.com/group/android-developers?hl=en