从 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,我们得到了所有响应,但它们未显示在文本视图上
从0到1,搭建Spring Boot+RESTful API+Shiro+Mybatis+SQLServer权限系统03创建RESTful API,并统一处理返回值