weixin_40576400 2021-10-13 14:53 采纳率: 80.8%
浏览 68
已结题

WebApi无法读取传入的POST字符串参数

WebApi无法读取传入的POST字符串参数,也就是调用这个WebApi的代码中不论给code0传入什么字符串,WebApi读到的code0都是空值。希望各位专家能够给与指点迷津!
也就是执行完string code = code0;后,code无法获取code0的值,也就是code0根本就没有传进来。

我的WebApi代码如下:

using Newtonsoft.Json;
using System;
using System.Collections.Generic;
using System.Diagnostics;
using System.Linq;

namespace expressApi.Controllers
{
    [Route("api/[controller]")]
    [ApiController]
    public class SurfaceController : ControllerBase
    {
        public List<TechnicalRequirement> TechnicalRequirements = new List<TechnicalRequirement>();       
        [HttpPost("PostSurface")]
        public IActionResult Surface([FromForm] string code0)
        {
            string code = code0;
           if (TechnicalRequirements == null)
            {
                        return NotFound();
            }
            return Ok(TechnicalRequirements);
     }
}

我用于测试调用这个WebApi的代码如下(初步认为不会是下面的代码的问题,因为别人用JAVA写的程序一样无法传入参数):


```c#
string strUri = requestUri;
            HttpWebRequest request = (HttpWebRequest)WebRequest.Create(strUri);
            request.Method = "POST";
            //request.ContentType = "text/plain";
            request.ContentType = "application/x-www-form-urlencoded";//form值的代码,只要修改req.ContentType = "application/x-www-form-urlencoded//application/json
            string paraUriCoded = json;
            byte[] payload;
            payload = System.Text.Encoding.UTF8.GetBytes(paraUriCoded);
            request.ContentLength = payload.Length;
            Stream writer;
            try
            {
                writer = request.GetRequestStream();
            }
            catch (Exception ex)
            {
                return ex.ToString();                
            }
            writer.Write(payload, 0, payload.Length);
            writer.Close();
            HttpWebResponse response;
            try
            {
                response = (HttpWebResponse)request.GetResponse();
            }
            catch (WebException ex)
            {
                response = ex.Response as HttpWebResponse;
            }
            Stream s = response.GetResponseStream();
            StreamReader sRead = new StreamReader(s);
            string postContent = sRead.ReadToEnd().ToString();
            sRead.Close();
            return postContent;

```

  • 写回答

2条回答 默认 最新

  • 神仙别闹 2021-10-13 14:59
    关注

    [FromForm] 这个去掉,然后试试,不行贴一下前端的代码

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(1条)

报告相同问题?

问题事件

  • 系统已结题 10月21日
  • 已采纳回答 10月13日
  • 修改了问题 10月13日
  • 修改了问题 10月13日
  • 展开全部

悬赏问题

  • ¥15 安卓adb backup备份应用数据失败
  • ¥15 eclipse运行项目时遇到的问题
  • ¥15 关于#c##的问题:最近需要用CAT工具Trados进行一些开发
  • ¥15 南大pa1 小游戏没有界面,并且报了如下错误,尝试过换显卡驱动,但是好像不行
  • ¥15 没有证书,nginx怎么反向代理到只能接受https的公网网站
  • ¥50 成都蓉城足球俱乐部小程序抢票
  • ¥15 yolov7训练自己的数据集
  • ¥15 esp8266与51单片机连接问题(标签-单片机|关键词-串口)(相关搜索:51单片机|单片机|测试代码)
  • ¥15 电力市场出清matlab yalmip kkt 双层优化问题
  • ¥30 ros小车路径规划实现不了,如何解决?(操作系统-ubuntu)