gpt4 book ai didi

java - Android POST 请求到 PHP

转载 作者:行者123 更新时间:2023-12-01 18:47:29 25 4
gpt4 key购买 nike

我尝试开发一个 Android 应用程序。在此应用程序中,我需要向 PHP 页面发送 POST 请求。

我的代码在Java端:

 DefaultHttpClient httpclient = new DefaultHttpClient();
HttpPost httppost = new HttpPost("http://localhost/get.php");

ArrayList<NameValuePair> nameValuePairs = new ArrayList<NameValuePair>();
nameValuePairs.add(new BasicNameValuePair("mail", "asdasd"));
httppost.setEntity(new UrlEncodedFormEntity(nameValuePairs));

try{
HttpResponse httpresponse = httpclient.execute(httppost);

}catch(Exception e){
Toast.makeText(getApplicationContext(), "Didn't Happen",10).show();
}

Manifest.xml

 <?
xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.misman"
android:versionCode="1"
android:versionName="1.0" >

<uses-sdk android:minSdkVersion="10" android:targetSdkVersion="17"/>
<uses-permission android:name="android.permission.INTERNET"/>

<application
android:permission="android.permission.INTERNET"
android:allowBackup="true"
android:icon="@drawable/ic_launcher"
android:label="@string/app_name"
android:theme="@style/AppTheme" >
<activity
android:name="com.misman.MainActivity"
android:label="@string/app_name" >

<intent-filter>
<action android:name="android.intent.action.MAIN" />

<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
</application>

</manifest>

我搜索了很多网站,代码不断进入catch block 。我也使用了HttpURLConnection,但没有工作。你能帮我看看问题出在哪里吗?

最佳答案

使用以下代码。工作正常

public class HttpClient {
private static final String TAG = "HttpClient";

public static JSONObject SendHttpPost(String URL, JSONObject jsonObjSend) {

try {
DefaultHttpClient httpclient = new DefaultHttpClient();
HttpPost httpPostRequest = new HttpPost(URL);

StringEntity se;
se = new StringEntity(jsonObjSend.toString());

httpPostRequest.setEntity(se);
httpPostRequest.setHeader("Accept", "application/json");
httpPostRequest.setHeader("Content-type", "application/json");
httpPostRequest.setHeader("Accept-Encoding", "gzip");

long t = System.currentTimeMillis();
HttpResponse response = (HttpResponse) httpclient.execute(httpPostRequest);
Log.i(TAG, "HTTPResponse received in [" + (System.currentTimeMillis()-t) + "ms]");

HttpEntity entity = response.getEntity();

if (entity != null) {
InputStream instream = entity.getContent();
Header contentEncoding = response.getFirstHeader("Content-Encoding");
if (contentEncoding != null && contentEncoding.getValue().equalsIgnoreCase("gzip")) {
instream = new GZIPInputStream(instream);
}

String resultString= convertStreamToString(instream);
instream.close();
resultString = resultString.substring(0,resultString.length()-1);

JSONObject jsonObjRecv = new JSONObject(resultString);
Log.i(TAG,"<JSONObject>\n"+jsonObjRecv.toString()+"\n</JSONObject>");

return jsonObjRecv;
}

}
catch (Exception e)
{
Log.e("Exception", "Exception");
e.printStackTrace();
}
return null;
}


private 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();
}
}

关于java - Android POST 请求到 PHP,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17167338/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com