我试图让我的用户能够报告我的 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/