我需要发送三条信息: 域名,电子邮件和移动标识符。
从网站上,我希望得到一个类似的JSON响应:
{
domain: example.com,
token: abcdefg123,
reportEmail: null,
mobileResultsPageUrl: http://completedtest.testingSite.com/mobile/abcdefg123/4a0ced51c00cfd5d6ce8b50d00be49f6
}
我最关心的是将在新活动中显示为Webview的网址。
这是我到目前为止所做的尝试:
public void postData(){
// Create a new HttpClient and Post Header
HttpClient httpclient = new DefaultHttpClient();
HttpPost httppost = new HttpPost("http://exampleTestingSite.com/");
try {
// Add your data
List<NameValuePair> pairs = new ArrayList<NameValuePair>(3);
pairs.add(new BasicNameValuePair("domain", "OswaldMagic.com"));
pairs.add(new BasicNameValuePair("sendReportTo", "me@gmail.com"));
pairs.add(new BasicNameValuePair("mobile", "1"));
httppost.setEntity(new UrlEncodedFormEntity(pairs));
// Execute HTTP Post Request
HttpResponse response = httpclient.execute(httppost);
} catch (ClientProtocolException e) {
// TODO Auto-generated catch block
} catch (IOException e) {
// TODO Auto-generated catch block
}
}
非常感谢任何帮助。保持警惕,尽快谈谈, -Stefan
答案 0 :(得分:1)
现在正在运作!
我们必须让网站知道我们希望返回一个JSON,因为默认设置为HTML。我们通过修改标头以接受JSON来执行此操作,请参阅代码:
HttpClient httpclient = new DefaultHttpClient();
HttpPost httppost = new HttpPost(url);
httppost.setHeader("Accept", "application/json");
获得预期结果后,我只需要使用JSON的一部分。首先,我从网站获取结果并将其转换为字符串:
resultHTML = Html.fromHtml(responseBody);
JSONObject obj = null;
try {
obj = new JSONObject(String.valueOf(resultHTML));
} catch (JSONException e) {
e.printStackTrace();
}
String resultsPageHTML = null;
try {
resultsPageHTML = obj.getString("mobileResultsPageUrl");
} catch (JSONException e) {
e.printStackTrace();
}
然后我调用了sharedPreferences:
// create a file to save SharedPreferences in
public static final String PREFS_NAME = "MyPreferencesFile";
// call sharedPreferences
SharedPreferences prefs = getSharedPreferences(PREFS_NAME, 0);
// call SharedPreferences editor
SharedPreferences.Editor editor = prefs.edit();
editor.putString("resultsPageHTML", resultsPageHTML);
editor.commit();
这样我就可以在另一项活动中收到它。
我希望这可以帮助那些正在经历类似斗争的人。