当前位置: 首页 > 知识库问答 >
问题:

通过Url发布数据到webapi

杨君之
2023-03-14

嘿,

我无法通过querystring将数据发布到action方法,action方法位于我的代码下面的控制器类中。

我键入一个url“http://localhost:53459/api/esb/post/test“发布价值,什么都不会发生

任何帮助都将不胜感激。

public static class WebApiConfig
{
    public static void Register(HttpConfiguration config)
    {
        // Web API configuration and services

        // Web API routes
        config.MapHttpAttributeRoutes();

        config.Routes.MapHttpRoute(
            name: "DefaultApi",
            routeTemplate: "api/{controller}/{action}/{value}",
            defaults: new { value = RouteParameter.Optional }
        );
    }
}



[RoutePrefix("api/esb")]
public class EsbController : ApiController
{
    [Route("get")]
    [HttpGet]
    public string Get()
    {
        return "Hello there!";
    }

    [Route("post")]
    [HttpPost]
    [AcceptVerbs("POST")]
    public string Post([FromUri]string value)
    {
        return string.Format("{0} is posted successfully ", value);
    }

    [Route("put")]
    [HttpPut]
    public string Put([FromUri] string value)
    {
        return string.Format("{0} is updated successfully ", value);
    }

    [Route("delete")]
    [HttpDelete]
    public string Delete(string value)
    {
        return string.Format("{0} is deleted successfully ", value);
    }
}

共有3个答案

柴阳云
2023-03-14

为了点。Net核心(我使用的是v2.0),使用FromRoute

[AllowAnonymous]
[HttpPost]
[Route("validateEmail/{validationCode}")]
public async Task<IActionResult> ValidateEmail(
 [FromRoute] Guid validationCode)
    {
        await authService.ValidateEmailAsync(validationCode);

        return Ok();
    }

然后像这样发布:

公西繁
2023-03-14

删除参数绑定[FromUri]并更新路由,如

public static class WebApiConfig
{
    public static void Register(HttpConfiguration config)
    {
        // Web API configuration and services

        // Web API routes
        config.MapHttpAttributeRoutes();

        config.Routes.MapHttpRoute(
            name: "DefaultApi",
            routeTemplate: "api/{controller}/{action}/{value}",
            defaults: new { value = RouteParameter.Optional }
        );
    }
}

控制器

[RoutePrefix("api/esb")]
public class EsbController : ApiController
{
    [Route("get")]
    [HttpGet]
    public string Get()
    {
        return "Hello there!";
    }

    [Route("post/{value}")]
    [HttpPost]
    [AcceptVerbs("POST")]
    public string Post(string value)
    {
        return string.Format("{0} is posted successfully ", value);
    }

}

这对我有用,试着用chrome或fiddler中的Postman。

POST http://localhost:XXXXX/api/esb/post/test HTTP/1.1
张锐藻
2023-03-14

如果您在浏览器中键入url,那么您正在构造GET请求,因此它永远不会到达您的Post操作。您可以通过在操作的允许动词中添加“GET”来确认这一点(注意:删除[HttpPost]属性)。

[Route("post")]
[AcceptVerbs("POST", "GET")]
public string Post([FromUri]string value)
{
  return string.Format("{0} is posted successfully ", value);
}
 类似资料:
  • 我有一个简单的形式,我想转换成一个PHP后端系统。 现在,此表单有一个提交到URL的操作—URL仅在提交了名为的数据以及正确的信息(已编码的xml)时才接受邀请。 作品:-请注意,输入名称被称为和值包含的已经和它完美的工作。 但是,我希望通过在PHP中移动元素来实现以下目标,因为大量信息都是通过这种方式传递的。 请注意:链接是https,但它在本地不起作用,所以我不得不在CURL中禁用它。 我一直

  • 我正在尝试将数据发布到 GA 中,但我收到索引错误 连接正在工作,因为我得到响应 200,但 for 循环似乎有问题,它从我的数据帧中发布所有行。有人可以帮助我吗?谢谢! 错误: IndexingError Traceback(最近的调用最后)在4'pa':"购买",5'tid':"xxx", ---- ~\路径\lib\site-packages\pandas\core\indexing.py

  • 问题内容: 如何将POST数据发送到PHP中的URL(无表单)? 我将使用它来发送变量以完成并提交表单。 问题答案: 如果您希望将数据从PHP代码本身发布到URL(不使用html表单),则可以使用curl来完成。它看起来像这样: 这会将post变量发送到指定的url,页面返回的内容将在$ response中。

  • 目前,我正在通过外部URL检索数据,该URL使用PHP脚本并返回JSON值。工作很好。 但如何发送用于查询的字符串,以便在PHP脚本中执行以下操作: 注意:我不想使用凌空抽射。 我的AsyncTask扩展类,它当前不向URL发送任何值。

  • 我在控制台中不断得到关于时区的相同错误,但我从未尝试在代码中设置时区。 控制台中的错误消息: 连接失败!检查输出consolejava.sql.sqlexception:服务器时区值“pdt”无法识别或表示多个时区。如果要利用时区支持,则必须配置服务器或JDBC驱动程序(通过serverTimezone配置属性)以使用更指定的时区值。

  • 我的管道是IoTCore->pub/sub->Dataflow->bigQuery。最初,我得到的数据是Json格式的,管道工作正常。现在我需要转向csv,问题是我使用的Google定义的数据流模板使用Json输入而不是csv。是否有一种简单的方法通过数据流将csv数据从pub/sub转移到bigquery。模板可能会改变,但它是用Java实现的,我从来没有用过,所以需要很长时间来实现。我还考虑过