java - Android:上传字符串到服务器

标签 java android web webserver httpclient

我试图让我的用户能够报告我的 Android 应用程序自动捕获到我的服务器的小错误。它没什么大不了的,只是一个小文本框和发送按钮。

它应该将 3 个字符串(错误、可选的用户描述和时间)发送到我网站上专门用于捕获这些错误的文件。问题是,我完全不知道该怎么做。我只知道如何让我的应用程序从我的网站读取信息,但不知道如何让我的应用程序读取信息。

我的网站上必须有一个特殊的脚本吗? JSON 字符串是否必要?我需要将字符串保存在那里。 (暂时不是) 我是个新手,所以非常感谢任何帮助。谢谢!

最佳答案

-您的服务器上必须运行一个脚本,例如:php脚本

-它实际上是发布在服务器上的网络服务,以便客户端可以访问它。

- 然后您需要向服务器执行 HTTP Post ,最好使用 NameValuePair 来发送数据.

这是我执行 HTTP POST 的代码:

public String postData(String url, String xmlQuery) {

        final String urlStr = url;
        final String xmlStr = xmlQuery;
        final StringBuilder sb = new StringBuilder();

        Thread t1 = new Thread(new Runnable() {

            public void run() {

                HttpClient httpclient = MySSLSocketFactory.getNewHttpClient();

                HttpPost httppost = new HttpPost(urlStr);

                try {

                    List<NameValuePair> nameValuePairs = new ArrayList<NameValuePair>(
                            1);
                    nameValuePairs.add(new BasicNameValuePair("xml", xmlStr));

                    httppost.setEntity(new UrlEncodedFormEntity(nameValuePairs));

                    HttpResponse response = httpclient.execute(httppost);

                    Log.d("Vivek", response.toString());

                    HttpEntity entity = response.getEntity();
                    InputStream i = entity.getContent();

                    Log.d("Vivek", i.toString());
                    InputStreamReader isr = new InputStreamReader(i);

                    BufferedReader br = new BufferedReader(isr);

                    String s = null;

                    while ((s = br.readLine()) != null) {

                        Log.d("YumZing", s);
                        sb.append(s);
                    }

                    Log.d("Check Now", sb + "");

                } catch (ClientProtocolException e) {

                    e.printStackTrace();
                } catch (IOException e) {
                    e.printStackTrace();
                } /*
                 * catch (ParserConfigurationException e) { // TODO
                 * Auto-generated catch block e.printStackTrace(); } catch
                 * (SAXException e) { // TODO Auto-generated catch block
                 * e.printStackTrace(); }
                 */
            }

        });

        t1.start();
        try {
            t1.join();
        } catch (InterruptedException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }

        System.out.println("Getting from Post Data Method " + sb.toString());

        return sb.toString();
    }

/////////////////////////////已编辑部分////////////////////////////////////

服务器端php代码:

<?php

require_once(ROOT.'/lab/lib/xyz_api_int.php');

try {

    //setup the sdk
    $api = YumzingApiInt::_get(
        Config::get('api_int','url'),
        Config::get('api_int','key'),
        Config::get('api_int','secret')
    );

    //connect to the api
    $api->connect();

    //check our token
    echo $api->getToken();

} catch(Exception $e){
    sysError($e->getMessage());
}

关于java - Android:上传字符串到服务器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13487167/

相关文章:

java - 不好的做法?省略循环条件

java - 如何从其他类调用 onClick()

web - 如何在 IIS 上创建隐藏网站 - 具有多个用户帐户的 IIS

php - 阻止用户查看页面超过 3 次

java - Web界面如何从服务器获取数据?

java - Mac 上的 SWT 问题

java - 使用雅虎财经

java - http OAuth 请求

android - 解析来自 webservices android 的 json 响应中的特殊字符

Android 更改新 ProgressBar() 的主题