无法从使用 C# 开发的 Android 应用程序接收 json

Posted

技术标签:

【中文标题】无法从使用 C# 开发的 Android 应用程序接收 json【英文标题】:Not able to receive json from Android app developed using C# 【发布时间】:2016-02-06 05:34:50 【问题描述】:

这是我在app端写的代码,正在使用Xamarin开发

HttpWebRequest objRequest = (HttpWebRequest)WebRequest.Create(ApiUrl);
objRequest.Method = "POST";
        objRequest.ContentType = "application/x-www-form-urlencoded";//"application/json;charset=utf-8";
        objRequest.Headers.Add("Authentication", "web60134");       
        UTF8Encoding utf8Encoding = new UTF8Encoding();
        byte[] arrRequest;
        arrRequest = utf8Encoding.GetBytes(JsonReq);
        objRequest.ContentLength = arrRequest.Length;
        Stream requestStream = objRequest.GetRequestStream();
        requestStream.Write(arrRequest, 0, arrRequest.Length);
        requestStream.Close();
        HttpWebResponse res = (HttpWebResponse)objRequest.GetResponse();
        StreamReader streamReader = new StreamReader(res.GetResponseStream());
        string result = streamReader.ReadToEnd();

这是在服务器端编写的代码,即 php

$recvd = $_POST['TH_ET_LoginProcess'];
$recvdArr = json_decode($recvd);

我尝试使用 file_get_contents("php://input"),但两种方法都返回 null 或什么都不返回。

在这种情况下,使用 PHP 在 Web 服务器上读取 JSON 的最佳方法是什么?

【问题讨论】:

【参考方案1】:

最佳是一个相当主观的术语。

但是,我在 Xamarin android 解决方案中成功使用了 RestSharp。

我还强烈推荐 PostMan 和 Fiddler 对您的服务进行故障排除。

关于您的代码:

您应该处理那些一次性的对象,最好使用“使用”语句。这包括 HttpWebResponse 对象以及 Stream 对象。

【讨论】:

以上是关于无法从使用 C# 开发的 Android 应用程序接收 json的主要内容,如果未能解决你的问题,请参考以下文章

C#:在 Android 上复制资产

以前可以在 Android 上从 PersistentDataPath 保存和加载,现在无法

使用 C# 开发 Android 应用程序

是否可以使用 C# 开发 Android 应用程序? [复制]

如何使用 C# 在 android 中编写推送通知的代码?

如何在 C# Rest 服务中从 Android 应用程序读取 JSON 数据