gpt4 book ai didi

Android http post 不发送数据

转载 作者:搜寻专家 更新时间:2023-11-01 09:08:18 25 4
gpt4 key购买 nike

首先,我收到状态代码 200。在 php 脚本中,我只是让代码通过邮件向我发送发送到服务器的内容(同时我尝试调试)。使用 var_dump $_POST 或 $_REQUEST 我收到一封空白电子邮件。如果我在 $_SERVER 上运行 foreach,我会返回一些数据,例如 HTTP_USER_AGENT:Apache-HttpClient/UNAVAILABLE (java 1.4) 和 CONTENT_LENGTH:9

不明白为什么没有post数据?我是 Android 的新手,我真的是在边学边学。

HttpClient httpclient = new DefaultHttpClient();
HttpPost httppost = new HttpPost(dest_url);
//httppost.setHeader("Accept", "application/json");
//httppost.setHeader("Content-type", "application/json");

//JSONObject json = new JSONObject();

// Add your data
//json.put("action", "login");
//json.put("username", "kermit");
//json.put("password", "123456");

ArrayList<NameValuePair> nameValuePairs = new ArrayList<NameValuePair>();
//nameValuePairs.add(new BasicNameValuePair("myjson", json.toString()));
nameValuePairs.add(new BasicNameValuePair("plswork", "hi"));
httppost.setEntity(new UrlEncodedFormEntity(nameValuePairs, HTTP.UTF_8));

//StringEntity str_json = new StringEntity(json.toString());

//httppost.setEntity(str_json);
HttpResponse response;

response = httpclient.execute(httppost);

我的 manifestxml 有以下行;

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

这些是我的进口;

import java.io.IOException;
import java.util.ArrayList;
import org.apache.http.HttpResponse;
import org.apache.http.NameValuePair;
import org.apache.http.client.ClientProtocolException;
import org.apache.http.client.HttpClient;
import org.apache.http.client.entity.UrlEncodedFormEntity;
import org.apache.http.client.methods.HttpPost;
import org.apache.http.impl.client.DefaultHttpClient;
import org.apache.http.message.BasicNameValuePair;
import org.apache.http.protocol.HTTP;
import org.json.JSONObject;

import android.app.Activity;
import android.content.SharedPreferences;
import android.os.Bundle;
import android.view.Menu;
import android.view.MenuInflater;
import android.view.MenuItem;
import android.view.View;
import android.widget.EditText;
import android.widget.TextView;
import android.widget.Toast;

最佳答案

这很可能与你有关

httppost.setHeader("Content-type", "application/json");

application/json 不是 HTTP POST 表单提交的正常内容类型。考虑到您并不是真正发送 json 而是标准的 POST 实体 (nameString=valueString),请尝试将其更改为

httppost.setHeader("Content-Type", "application/x-www-form-urlencoded")

看看这是否能解决您的问题。或者更好的是,将其全部删除。

我在我的应用程序中使用了这段代码 - 它运行良好:

HttpPost httppost = new HttpPost(SERVER_URL);
List<NameValuePair> nameValuePairs = new ArrayList<NameValuePair>(1);
nameValuePairs.add(new BasicNameValuePair("REQUEST", req));
httppost.setEntity(new UrlEncodedFormEntity(nameValuePairs, "UTF-8"));
HttpResponse response = httpclient.execute(httppost);

本例中的响应是 text/xml - 但这无关紧要。

关于Android http post 不发送数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10248297/

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