我的方法不是张贴值到aspx sql表



嗨,我有一个位置应用程序,我在1/2小时内更新一次位置到服务器,它工作得很好,但它使用2.2和2.3 android版本向服务器发布值。在3.0及以上版本中,它正在获取GPS坐标,而不是不将值发布到服务器,有人能说为什么会发生这种情况吗?但它工作得很好,并在2.2和2.3上向服务器发送值!

代码:

public class MainActivity extends Activity {
    String Message;
    DefaultHttpClient httpclient;
    HttpPost httppost;
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        GetServerResponseRawString();
    }
    private String GetServerResponseRawString() {
        List<NameValuePair> nameValuePairs = new ArrayList<NameValuePair>(2);
        nameValuePairs.add(new BasicNameValuePair("imei", "400098890098"));
        nameValuePairs.add(new BasicNameValuePair("location", "13.116,80.208"));
        nameValuePairs.add(new BasicNameValuePair("latitude", "13.116"));
        nameValuePairs.add(new BasicNameValuePair("longitude", "80.208"));
    //  nameValuePairs.add(new BasicNameValuePair("logdate", "30-04-2013"));
        return GetServerResponseRawString(
                "http://197.168.1.1:90/LogGeo.aspx", nameValuePairs);
    }
    public String GetServerResponseRawString(String str_Url,
            List<NameValuePair> nvp_Parameter) {
        String str_Response = "";
        try {
            HttpResponse response;
            this.httpclient = new DefaultHttpClient();
            this.httppost = new HttpPost(str_Url);
            this.httppost.setEntity(new UrlEncodedFormEntity(nvp_Parameter,
                    HTTP.UTF_8));
            response = this.httpclient.execute(this.httppost);
            if (response != null
                    && response.getStatusLine().getStatusCode() == 200) {
                BufferedReader reader = new BufferedReader(
                        new InputStreamReader(
                                response.getEntity().getContent(), "UTF-8"));
                StringBuilder builder = new StringBuilder();
                for (String line = null; (line = reader.readLine()) != null;) {
                    builder.append(line).append("n");
                }
                Message = builder.toString().split("<")[0];
                str_Response = builder.toString();
                return str_Response;
            }
        } catch (Exception e) {
            String str_e = e.toString();
            return str_Response;
        }
        return str_Response;
    }
}
Xml:

<uses-permission android:name="android.permission.INTERNET" />

谢谢. . !

您可以尝试通过http或https async post方法

public class post extends AsyncTask<Void, Void, JSONArray> {
    @Override
    protected JSONArray doInBackground(Void... params) {
        try {
            HttpClient httpclient = new DefaultHttpClient();
            HttpPost httppost = new HttpPost("http://www.yoursite.com/script.php");
            // Add your data
            List<NameValuePair> nameValuePairs = new ArrayList<NameValuePair>(2);
            nameValuePairs.add(new BasicNameValuePair("id", "12345"));
            nameValuePairs.add(new BasicNameValuePair("stringdata", "StringData"));
            httppost.setEntity(new UrlEncodedFormEntity(nameValuePairs));
            // Execute HTTP Post Request
            HttpResponse response = httpclient.execute(httppost);
            BufferedReader reader = new BufferedReader(new InputStreamReader(response.getEntity().getContent(), "iso-8859-1"), 8);
            StringBuilder sb = new StringBuilder();
            sb.append(reader.readLine() + "n");
            String line = "0";
            while ((line = reader.readLine()) != null) {
                sb.append(line + "n");
            }
            reader.close();
            String result11 = sb.toString();
            // parsing data
            return new JSONArray(result11);
        } catch (Exception e) {
            e.printStackTrace();
            return null;
        }
    }
    @Override
    protected void onPostExecute(JSONArray result) {
        if (result != null) {
            // do something
        } else {
            // error occured
        }
    }
}

最新更新