在 Android 中使用带有 post 参数的 HttpClient 和 HttpPost

2024-04-17

我正在为一个 Android 应用程序编写代码,该应用程序应该获取数据,将其打包为 Json 并将其发布到 Web 服务器,而 Web 服务器又应该使用 json 进行响应。

使用 GET 请求工作正常,但由于某种原因,使用 POST 时所有数据似乎都会被删除,并且服务器不会收到任何内容。

这是代码片段:

HttpParams params = new BasicHttpParams();
HttpConnectionParams.setConnectionTimeout(params, 5000);
HttpConnectionParams.setSoTimeout(params, 5000);        
DefaultHttpClient httpClient = new DefaultHttpClient(params);
BasicCookieStore cookieStore = new BasicCookieStore();
httpClient.setCookieStore(cookieStore);

String uri = JSON_ADDRESS;
String result = "";
String username = "user";
String apikey = "something";
String contentType = "application/json";

JSONObject jsonObj = new JSONObject();

try {
    jsonObj.put("username", username);
    jsonObj.put("apikey", apikey);
} catch (JSONException e) {
    Log.e(TAG, "JSONException: " + e);
}

HttpPost httpPost = new HttpPost(uri);
List<NameValuePair> postParams = new ArrayList<NameValuePair>();
postParams.add(new BasicNameValuePair("json", jsonObj.toString()));
HttpGet httpGet = null;
try {
    UrlEncodedFormEntity entity = new UrlEncodedFormEntity(postParams);
    entity.setContentEncoding(HTTP.UTF_8);
    entity.setContentType("application/json");
    httpPost.setEntity(entity);

    httpPost.setHeader("Content-Type", contentType);
    httpPost.setHeader("Accept", contentType);
} catch (UnsupportedEncodingException e) {
    Log.e(TAG, "UnsupportedEncodingException: " + e);
}

try {
    HttpResponse httpResponse = httpClient.execute(httpPost);
    HttpEntity httpEntity = httpResponse.getEntity();

    if (httpEntity != null) {
        InputStream is = httpEntity.getContent();
        result = StringUtils.convertStreamToString(is);
        Log.i(TAG, "Result: " + result);
    }
} catch (ClientProtocolException e) {
    Log.e(TAG, "ClientProtocolException: " + e);
} catch (IOException e) {
    Log.e(TAG, "IOException: " + e);
}

return result;

我认为我已经遵循了有关如何创建参数并发布它们的一般准则,但显然没有。

此时非常欢迎任何帮助或指向我在哪里可以找到解决方案的指示(在花了几个小时意识到没有发送任何发布数据之后)。真实的服务器在 Tomcat 上运行 Wicket,但我也在一个简单的 PHP 页面上对其进行了测试,没有任何区别。


实际上,您可以通过以下方式将其作为 JSON 发送:

// Build the JSON object to pass parameters
JSONObject jsonObj = new JSONObject();
jsonObj.put("username", username);
jsonObj.put("apikey", apikey);
// Create the POST object and add the parameters
HttpPost httpPost = new HttpPost(url);
StringEntity entity = new StringEntity(jsonObj.toString(), HTTP.UTF_8);
entity.setContentType("application/json");
httpPost.setEntity(entity);
HttpClient client = new DefaultHttpClient();
HttpResponse response = client.execute(httpPost);
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

在 Android 中使用带有 post 参数的 HttpClient 和 HttpPost 的相关文章

  • 如何使用可滑动选项卡实现 PageTransformer

    在我的示例代码中 我在 MainActivity java 中有三个可滑动选项卡 即 Android IOS 和 WINDOWS 我使用滑动在选项卡之间切换 现在 我必须使用可滑动选项卡实现 PageTransformer 所以这里我需要您
  • 并发 log4j

    我有自己的日志引擎 它将日志写入带有阻塞队列的单独线程上 为了使用 标准软件 我正在考虑切换到 log4j 我不希望我的高并发软件因日志命令而变慢 这些日志命令在调用命令时将所有内容写入磁盘 log4j 可以用作垃圾箱吗 Log4j 是大多
  • Java正则表达式以数字和固定长度开头的字符串

    我制作了一个正则表达式来检查 String 的长度 所有字符都是数字并以数字开头 例如 123 以下是我的表情 REGEX 123 d 9 但它无法检查字符串的长度 它仅验证那些长度为 9 并以 123 开头的字符串 但如果我传递字符串 1
  • 多行 JTable 单元格在编辑期间不是多行的

    我正在开发一个应用程序 它有一个需要多行单元格的 JTable 因此 我扩展了 JTextArea 一切都显示出来了 但是当我尝试编辑单元格时 文本显示为单行 编辑后变为多行 我希望文本在编辑过程中保持多行 有没有办法做到这一点 创建您的表
  • 无法实例化类:org.jnp.interfaces.NamingContextFactory

    这是我的代码 扬声器远程 java package test import javax ejb Remote Remote public interface SpeakerRemote String sayAPhrase String ph
  • 使用 Scanner 类输入

    我从过去的经历中了解到的是nextInt or nextDouble 将继续搜索 直到在同一行或下一行中找到整数或双精度数 这并不重要 同时通过扫描器类读取字符串作为输入next 考虑空格之前的那些字符串并将光标保持在同一行 其中nextL
  • 当我的活动结束时,如何停止 GPS/位置跟踪?

    我有一个非常简单的 Android 应用程序 它显示 Google 地图视图并使用 GPS 跟踪位置 基本上像这样 public void onCreate Bundle savedInstanceState mLocationManage
  • 如何根据视图最大尺寸自动调整多行 TextView 上的文本大小?

    我一直在寻找一种在文本视图中自动调整文本的方法 通过我的搜索 我找到了很多解决方案 例如 字体适合文本视图 https stackoverflow com questions 2617266 how to adjust text font
  • 如何使用我的 Android 应用程序在 Google Drive 上上传文件

    我从谷歌驱动器 SDK https developers google com drive quickstart android 我按照该帖子中描述的步骤进行操作 但我面临的问题是Step 3 Create and Configure an
  • 使用 ProGuard 对 Android 代码进行混淆...如何知道它已被混淆?

    我有一个 Android 项目 最近通过 ProGuard 进行混淆运行后发布到市场 该项目导出时没有任何复杂性 但我怎么知道它已被混淆 我可以做些什么来验证混淆是否成功 寻找dump txt mapping txt seeds txt a
  • 有没有办法在 Eclipse 中自动附加非 JRE 包的 Javadoc?

    首先 这与 Java SE Javadocs 无关 效果很好 我们有一个基于 Java 的大型平台 包含大约 20 个 API 包 对于使用我们平台的用户 我们希望工具提示和其他此类内置文档支持能够像 Java API 那样工作 我们的 J
  • 获取通过discord.js选项传递的值

    const data new SlashCommandBuilder gt command setName info setDescription addStringOption option gt option setName steam
  • 如何从Java中的sqlite中的多个表中进行选择?

    我正在尝试学习如何在 java 程序中使用 sqlite 数据库 不是安卓 我去了this https bitbucket org xerial sqlite jdbc overview链接 下载 jdbc 库并复制示例 该示例运行正常 没
  • 在最新的 Spring v4 中使用 @RequestBody 和可选主体

    使用时如何在 REST API 调用中使正文可选 RequestBodySpring中的注解 使用 Spring 的最新版本 如果您使用 RequestBody注释 它使客户端始终发送正文而不使其可选 I tried RequestBody
  • 带有 CompletableFuture 的 MDC 记录器

    我正在使用 MDC Logger 除了一种情况外 它对我来说非常适合 无论我们在代码中的何处使用 CompletableFuture 对于创建的线程 MDC 数据都不会传递到下一个线程 因此日志会失败 例如 在代码中我使用下面的代码片段来创
  • 使用 Java 删除文件时出现问题 (apache commons io)

    我通过 JNI 调用 C 方法 该方法创建两个文件 给定目录中的文本日志文件和 pdf 文件 我想在执行 JNI 方法之前删除这些文件 如果存在 我正在使用 Apache commons io FileUtils forceDelete F
  • 变量范围的 Java 文档 [关闭]

    Closed 这个问题正在寻求书籍 工具 软件库等的推荐 不满足堆栈溢出指南 help closed questions 目前不接受答案 任何人都可以指导我查看 java 文档以了解变量的范围 我想查看 java 8 中的类变量和成员变量的
  • JPA:@JoinColumn 和 @PrimaryKeyJoinColumn 之间的区别?

    两者之间的确切区别是什么 JoinColumn and PrimaryKeyJoinColumn You use JoinColumn对于属于外键一部分的列 典型的列可能如下所示 例如 在具有附加属性的连接表中 ManyToOne Join
  • 如何创建可以使用拨号盘启动的应用程序

    我想知道如何使用 Dialpad 中的一些代码启动我的 Android 应用程序 就像如果你 3214789650 它会从您的星系启动angryGps 应用程序 如何实施 Thanks 试试这个 使用广播接收器来监听去电号码 清单 xml
  • 在谷歌应用程序引擎中使用低级 API 进行数据存储?是不是很糟糕?

    关于如何使用数据存储的低级 api 的文档很少 而关于 JPA 和 JDO 以及如何转换为 JPA 和 JDO 的文档却很多 我的问题是 根据 JPA 或 JDO 规范进行编码而不是直接访问数据存储的低级 api 有什么优势吗 乍一看 这似

随机推荐

  • Angular2 和禁用按钮异常

    在我的代码中 我有一个按钮 只要表单无效或不脏 该按钮就会被禁用 I have
  • 如何在VB.net中使用字典?

    我编写了这个函数来自动将字符串数组中的不同值的性别更正为 M 或 F 它工作得很好 但我的经理告诉我使用字典 他说这更有效 但我不知道 有人愿意帮助我了解如何做到这一点吗 谢谢 Public Function AutoGender ByVa
  • 获取任何枚举值的扩展方法

    我一直在尝试创建一个适用于任何枚举的扩展方法 以返回其值 而不是这样做 Enum GetValues typeof BiasCode Cast
  • 与查找数据集连接后进行多列值查找

    我正在使用spark sql 2 4 1v如何根据列的值进行各种连接 我需要获得多个查找值map val给定值列的列 如下所示 样本数据 val data List 20 score school 2018 03 31 14 12 21 s
  • Google Tasks API:403 禁止,超出服务限制

    您好 Google Tasks API 团队 从几天前开始 我们就开始 403 Forbidden 对于我们的许多用户来说 您能检查一下发生了什么事吗 我们的 API 控制台很干净 calls 远低于配额 Caused by com goo
  • 分析 Windbg 中的故障转储

    我正在使用第三方闭源 API 它会抛出一个异常 指出 所有命名管道都忙 我想进一步调试 而不是单步调试 这样我就可以真正了解幕后发生的事情 我使用 WinDbg 转储了这个过程 我现在应该使用什么命令来分析此转储 Thanks 您可以开始执
  • 在联合查询中使用 Wikidata 标签服务

    我想知道是否可以在联合查询中使用维基数据标签服务 例如 以下查询 Query from a local SPARQL enpoint select item itemLabel where SERVICE
  • 如何计算 RectTransform 中的 sizeDelta?

    我编写了自定义布局所需的自定义内容适配程序 所以 我需要控制RectTransform sizeDelta当锚点不同时属性 但我无法显示该值 我不需要Unity3D API参考资料 我读了它 但什么也没得到 因为它只说 此 RectTran
  • minHeight 不适用于 Linearlayout 中的 Weight=“1”

    我想要一个视图 如果屏幕尺寸较小 则可以具有最小高度或wrap content 如果屏幕尺寸较大 则占据其余空间 该视图是其父视图的中间子视图 目前 我正在使用 LinearLayout 的权重 它在大屏幕上工作正常 但在小屏幕上它不显示视
  • java.lang.ClassCastException:java.util.LinkedHashMap无法转换为com.testing.models.Account

    我收到以下错误 java lang ClassCastException java util LinkedHashMap cannot be cast to com testing models Account 用下面的代码 final i
  • ImportError:无法从“tensorflow.python.keras.engine”导入名称“keras_tensor”

    我在加载张量流插件库时收到此错误 import tensorflow addons as tfa ImportError cannot import name keras tensor from tensorflow python kera
  • 是否可以通过 TCP 连接到正在侦听 3G 网络端口的 iPhone?

    我正在开发一个严重依赖 P2P 的应用程序 但我目前没有任何 SIM 卡可供实验 因此我正在 wifi 网络上进行测试 我想知道 3G 网络上的 iPhone 是否可以连接以及是否需要穿越 NAT 设备 您位于提供商的路由器后面 您的 IP
  • EJB3 Glassfish JNDI 查找

    我正在使用 Glassfish 捆绑的 Eclipse IDE 我编写了一个简单的 EJB 应用程序 但它不起作用 Stateless Remote CalculatorRemote class Local CalculatorLocal
  • Bootstrap 下拉菜单切断

    我正在尝试将下拉设置菜单添加到我一直在处理的项目中的评论部分 下拉菜单似乎自行切断 我不知道为什么会这样 I tried overflow visible and z index 999 但它们似乎都不起作用 这是一个基本的评论块 我试图在
  • AEM/CQ 中删除子组件的事件处理程序

    如何为 Adob e AEM6 组件添加在删除子组件时触发的事件处理程序 我可以将事件处理程序附加到多个侦听器 列在cq listeners 的文档 http dev day com docs en cq current developin
  • 使用 Java EE 将文件存储在云中

    我正在使用 CloudBees 部署我的 Java EE 应用程序 因为我需要写入和读取文件 但我找不到 CloudBees 中的任何云文件系统 请向我推荐任何免费的云文件系统存储和用于访问该文件系统的java代码 使用 jclouds 您
  • Django通过最后创建的对象进行反向查询

    我有两个模型 class SomeActivity models Model name models ChartField max length 100 class SomeStatus models Model name models C
  • Maven:在不同源级别上进行编译和测试

    我目前正在开发一个将在嵌入式设备上运行的项目 该设备运行 Java ME JRE 相当于 Java 1 4 因此 maven 配置为针对源级别和目标级别 1 4 进行编译 是否可以在不同的源 目标级别上运行 Maven 测试阶段 因为这样我
  • std::string 和 std::wstring 的前向声明

    无法转发声明 std string 和 std wstring 的问题经常被讨论 据我了解 原因是这些类型是模板类 basic string 实例化的类型定义 namespace std typedef basic string
  • 在 Android 中使用带有 post 参数的 HttpClient 和 HttpPost

    我正在为一个 Android 应用程序编写代码 该应用程序应该获取数据 将其打包为 Json 并将其发布到 Web 服务器 而 Web 服务器又应该使用 json 进行响应 使用 GET 请求工作正常 但由于某种原因 使用 POST 时所有