【问题标题】:Post request to php Xamarin.Forms向 php Xamarin.Forms 发布请求
【发布时间】:2020-04-30 08:58:27
【问题描述】:

我在一个静态类中有这个函数,它向我服务器上的 php 代码发送一个 post 请求:

public static string phone;

public static async Task<string> CheckPhone()
{
    string url = "my url...";
    var form = new CheckPhoneForm { Phone = phone };
    var content = JsonConvert.SerializeObject(form);

    HttpClient client = new HttpClient();
    HttpResponseMessage response = await client.PostAsync(url, new StringContent(content));
    if (response.IsSuccessStatusCode == false) return "ERROR";
    return await response.Content.ReadAsStringAsync();
}

CheckPhoneForm 类:

public class CheckPhoneForm
{
    public string Phone { get; set; }
}

php代码:

<?php

    $phone = $_POST["Phone"];

    //rest of the code.....

?>

由于某种原因,php 文件中的 $phone 没有接收到从 c# 代码发送的数据并且它保持为空。 谁能告诉我我做错了什么?

【问题讨论】:

  • 在填充 $_POST 时,您可能没有以 PHP “识别”的两种格式之一发送数据。您需要发送application/x-www-form-urlencodedmultipart/form-data 的请求。
  • application/x-www-form-urlenncoded 工作!您可以将其发布为答案,以便我将其标记为解决方案吗?

标签: php xamarin post xamarin.forms httpclient


【解决方案1】:

在填充 $_POST 时,您可能没有以 PHP “识别”的两种格式之一发送数据。

您需要发送application/x-www-form-urlencodedmultipart/form-data 的请求。

(发送其他Content-Types的请求正文仍然可以在PHP中读取,但这需要通过php://input进行,并且必须手动完成任何内容解析。例如在发送JSON数据时,这是一种常用的方法。)

【讨论】:

    猜你喜欢
    • 2013-02-13
    • 2019-06-08
    • 1970-01-01
    • 2017-12-03
    • 2015-12-06
    • 2022-11-29
    • 1970-01-01
    • 2011-01-19
    • 1970-01-01
    相关资源
    最近更新 更多