从 Restful API 返回要在视图上显示的字符串

Posted

技术标签:

【中文标题】从 Restful API 返回要在视图上显示的字符串【英文标题】:Return a string to be displayed on a View from Restful API 【发布时间】:2014-09-17 05:47:01 【问题描述】:

我有一张我提交到表单的条形码图像。图像被发布到一个 RESTful API。 API接收图像,处理图像并抛出异常或从图像中返回一串条形码。

下面是我的代码的 sn-p

查看 -

<form name="somename" method="post" enctype="multipart/form-data"
    action="/api/decoder">
    <input type="file" name="ImageToDecode" accept="image/*" capture="camera" />
    <input type="submit" value="Get Barcode..." />
< /form>

API -

public class DecodeImageController : ApiController

    public string Post()
    
        var postedImage = HttpContext.Current.Request; // get the posted image

        // do some stuff in here to read the barcode from the image
        if (!could read image)
        
            return barcode.ToString();
        

        // barcode could not be found
        throw new Exception("Barcode could not be read");   
       // end post method

我正在使用 Visual Studio 2013 MVC 项目。 API 和视图都在不同的项目中。这就是返回的内容。

此 XML 文件似乎没有关联任何样式信息 用它。文档树如下所示。

<string xmlns="http://schemas.microsoft.com/2003/10/Serialization/">10320972351</string>

这工作正常,但现在我想调用 API 并将返回的条形码发送到我的控制器。

任何方向都会有所帮助。

随着我脑海中的想法不断涌现,我将继续努力。

【问题讨论】:

【参考方案1】:

除了@Vladmir 的回答...

您可以配置您的 API 以返回 json 数据类型的字符串,但是您需要添加格式化程序以从 API 返回 json 响应。参考这篇文章How do I get ASP.NET Web API to return JSON instead of XML using Chrome? 了解如何添加格式化程序。

之后,您可以使用 malsup jquery plugin 通过 ajax 将您的图片发布到 API,内容类型为“text/html”,将生成 json 中的条形码值。

【讨论】:

谢谢。我设法让 API 返回一个 Json(string) 并在 WebApiConfig 中添加了格式化程序。 API 现在返回 json 而不是 xml【参考方案2】:

这个回答是正确的。您同步发布表单并收到正确答案。

解决方案——使用Json交换数据,使用$.post之类的jquery发送异步查询,在$.post的success方法中执行需要的动作

【讨论】:

有没有办法通过 ajax 发布图片?也许他可以使用malsup plugin 通过ajax 发布图像并在json 中获得响应。

以上是关于从 Restful API 返回要在视图上显示的字符串的主要内容,如果未能解决你的问题,请参考以下文章

我们正在尝试调用api,我们得到了所有响应,但它们未显示在文本视图上

FlaskFlask Restful api

使用 RESTful API 时更新 UI

GraphQL和RESTful的比较

restful api接口介绍和数据返回及异常处理

从0到1,搭建Spring Boot+RESTful API+Shiro+Mybatis+SQLServer权限系统03创建RESTful API,并统一处理返回值