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

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 Android STD快速启动
  • ¥15 如何使用simulink建立一个永磁同步直线电机模型?
  • ¥30 天体光谱图的的绘制并得到星表
  • ¥15 PointNet++的onnx模型只能使用一次
  • ¥20 西南科技大学数字信号处理
  • ¥15 有两个非常“自以为是”烦人的问题急期待大家解决!
  • ¥30 STM32 INMP441无法读取数据
  • ¥15 R语言绘制密度图,一个密度曲线内fill不同颜色如何实现
  • ¥100 求汇川机器人IRCB300控制器和示教器同版本升级固件文件升级包
  • ¥15 用visualstudio2022创建vue项目后无法启动