當前位置:首頁 » 網頁前端 » cwebapi返回json
擴展閱讀
webinf下怎麼引入js 2023-08-31 21:54:13
堡壘機怎麼打開web 2023-08-31 21:54:11

cwebapi返回json

發布時間: 2023-06-10 21:08:58

① C#怎麼從http上返回JSON數據並讀取

你這個應該是兩個問題,
1、如何從http返回json
2、如何使用C#讀取從http返回的json
解決方案:
問題1:http返回json可以使用webapi技術,自己開發一個webapi介面用於從資料庫讀取並提供數據。
問題2:首先要說一下,http的json如果是前端程序還是用javascript讀取比較好。如果是後端的話,只能使用C#讀取,使用HttpClient或者HttpWebRequest。
HttpClient方式:
using (WebClient client = new WebClient())
{
client.Headers["Type"] = "GET";
client.Headers["Accept"] = "application/json";
client.Encoding = Encoding.UTF8;
client.DownloadStringCompleted += (senderobj, es) =>
{
var obj = es.Result;
};
client.DownloadStringAsync("http://localhost:41558/api/Demo");
}
HttpWebRequest方式:略(寫上之後網路頁面報錯!!!)
另外http方式的調用,分為get、post、put等方式。需要注意伺服器端的情況。

上述例子引用自http://www.cnblogs.com/MuNet/p/6732338.html

② 如何設置webapi返回json或jsonp

ing System.Net;
using System.Net.Http.Formatting;
using System.Net.Http.Headers;
using System.Threading.Tasks;
using System.Web;
using System.Net.Http;
using Newtonsoft.Json.Converters;
using System.Web.Http;

namespace Westwind.Web.WebApi
{

/// <summary>
/// Handles JsonP requests when requests are fired with text/javascript
/// </summary>
public class JsonpFormatter : JsonMediaTypeFormatter
{

public JsonpFormatter()
{
SupportedMediaTypes.Add(new MediaTypeHeaderValue("application/json"));
SupportedMediaTypes.Add(new MediaTypeHeaderValue("text/javascript"));

JsonpParameterName = "callback";
}

/// <summary>
/// Name of the query string parameter to look for
/// the jsonp function name
/// </summary>
public string JsonpParameterName {get; set; }

/// <summary>
/// Captured name of the Jsonp function that the JSON call
/// is wrapped in. Set in GetPerRequestFormatter Instance
/// </summary>
private string JsonpCallbackFunction;

③ webapi讀取json webapi讀取json時,獲取的數據為空(webhook)

轉載 在使用Web Api的時候,有時候只想返回JSON;實現這一功能有多種方法,本文提供兩種方式,一種傳統的,一種作者認為是正確的方法。

JSON in Web API – the formatter based approach

只支持JSON最普遍的做法是:首先清除其他所有的formatters,然後只保留JsonMediaTypeFormatter。

有了HttpConfiguration的實例,你將會很簡單的清除所有formatters,然後重新添加JsonMediaTypeFormatter。

實現代碼如下:

configuration.Formatters.Clear();
configuration.Formatters.Add(new JsonMediaTypeFormatter());這種方式雖然可以實現功能,但是所有的conent negotiation還是會發生,這就會產生以下額外的開銷了。因為,你已經知道要返回的結果了,也只想返回Json,其他的content negotiation都不需要了。

下面的方法可以很好的解決這個問題。JSON in Web API – the conneg based approach

最好的方法是使用自定義的只返回Json Result的content negotiation代替Web Api中默認的content negotiation。

Conneg通過實現IContentNegotiator的Negotiator方法實現擴展。Negotiator方法返回ContentNegotiationResult(它包裝了你選擇的headers和formatter)。

下面的方法通過傳遞一個JsonMediaTypeFormatter給自定義的conneg negotiator,讓它一直返回applicaton/json 的content-type以及JsonMediaTypeFormatter。這種方法避免了每次請求都要重新創建一次formatter。

代碼如下:

public class JsonContentNegotiator : IContentNegotiator
{
private readonly JsonMediaTypeFormatter _jsonFormatter;

public JsonContentNegotiator(JsonMediaTypeFormatter formatter)
{
_jsonFormatter = formatter;
}

public ContentNegotiationResult Negotiate(Type type, HttpRequestMessage request, IEnumerable<MediaTypeFormatter> formatters)
{
var result = new ContentNegotiationResult(_jsonFormatter, new MediaTypeHeaderValue("application/json"));
return result;
}
}接下來,你需要在HttpConfiguration實例上注冊你的新的實現機制:var jsonFormatter = new JsonMediaTypeFormatter();
//optional: set serializer settings here
config.Services.Replace(typeof(IContentNegotiator), new JsonContentNegotiator(jsonFormatter));

通過替換默認的DefaultContentNegotiator,我們使用我們自定義的JsonContentNegotiator,它只支持Json,而且可以馬上返回。

如果你想更深入的了解Content Negotiation的知識,你可以查看作者的這篇文章。

總結

通過使用自定義的JsonContentNegotiator替換系統默認的DefaultContentNegotiator,很好的實現Web Api只返回Json的功能,而且沒有額外的開銷。

④ Asp.netCore3.0 WebApi從0到1手摸手教你寫【1】簡單的webapi介面

Visual Studio 2019
.net core 3.0

具體步驟如下圖:

此處我們選擇API(新手不推薦選擇空項目,選擇API系統會為我們自動創建WebApi需要的一些配置文件等),Https配置這一項我們暫時不勾選,目前我們不配置Https。

F5運行項目,然後就可以看到微軟為我們寫好的一個天氣預報示例webapi了,這里只有一個Get請求示例,返回值為json格式。

注意: services.AddControllers(); 和 endpoints.MapControllers(); 方法成對出現, 這是.net core3.0中的最新寫法

ConfigureServices方法
用來向容器中注冊服務,注冊好的服務可以在其他地方進行調用.

Configure方法
用來配置中間件管道,即如何響應http請求.

1 右鍵刪除系統默認創建的 WeatherForecastController.cs 和 WeatherForecast.cs
2 新建一個控制器,命名: UserController.cs

問題來了,為啥直接給打開 weatherforecast ,而且還404了,別急,往下看。

(┬_┬)怎麼還是404?別急繼續往下看

上面增加 action 雖然能達到想要的結果,但是每次新建一個 Controller 都有寫個 action 萬一要是忘記了又要忙乎半天,有沒有一勞永逸的辦法呢?
繼續往下看:
1.首先去掉Controller里的 Route 和 ApiController

2.修改 Startup.cs ,增加路由模版:

今天就到這里,後期繼續完善我們的webapi。

https://github.com/xiaxiaoqian/NetCore3.0-WebApi

⑤ c#mvc中的webapi怎麼迫使服務端返回字元串

返回值是string就好了。

publicstringGet(intid)
{
return"字元串";
}

用AJAX取json格式的就是這樣的。

⑥ web前端怎麼調用api介面

1、首先需要確定第三方的介面的基本信息:地址、請求方式,參數、返回值,介面模式這里第三方的介面是restful風格的,採用get請求。

⑦ C#如何接受api傳來的json數據

不知道你使用的是哪種api,如果是webapi的話可以用HttpClient 訪問 api 獲取json數據。