c# - 如何从 silverlight 应用程序调用 Web api

标签 c# json asp.net-web-api

我是 Web api 和 json 的新手。我不知道 WebApi 中的调用方法。以下方法在 Webapi 中:

[HttpGet]
public bool AddAccount([FromRoute]string accountname)
{
    try
    {
        BizFramework.Web.Model.Account data = new BizFramework.Web.Model.Account();              
        data.AccountGuid = Guid.NewGuid();
        data.AccountName = accountname;
        data.ParentAccountID = 0;
        data.AccountTypeID = 13;
        data.AccountNo = "8060";
        data.Active = true;
        data.HierarchyLevel = 1;
        data.CashFlowID = 3;
        data.OpeningBalanceDate = DateTime.Now;
        data.IscashBasis = true;
        data.Createdby = "BAOwner";
        data.CreatedDatetime = DateTime.Now;
        data.Modifiedby = "BAOwner";
        data.ModifiedDatetime = DateTime.Now;
        BA.AddToAccounts(data);
        BA.SaveChanges();
        return true;
    }
    catch (Exception ex)
    {
        File.AppendAllText(AppDomain.CurrentDomain.BaseDirectory + "log.txt", ex.ToString());
        return false;
    }
} 

使用此链接:

http://example.com/CustomerPortalService12/AddAccount/AccountsReceivable

我可以添加。但是通过编码我该如何添加呢?

最佳答案

public void AddAccount(string accountname, Action<bool> success, Action<bool> failure)
    { var client = new RestClient("http://[localhost]/CustomerPortalService12");
        // client.Authenticator = new HttpBasicAuthenticator(username, password);

        var request = new RestRequest("AddAccount/AccountsReceivable/" + accountname, Method.GET);

        client.ExecuteAsync(request, (response) =>
        {
            if (response.ResponseStatus == ResponseStatus.Error)
            {
                failure(response.ErrorMessage);
            }
            else
            {
                var result= JsonConvert.DeserializeObject<bool>(response.Content);
                success(result);
            }
        }); }

调用这个函数

AddAccount("accountname",
               (item) => Dispatcher.BeginInvoke(() =>
               {

                   MessageBox.Show("Done!");

               }),
                   (error) => Dispatcher.BeginInvoke(() =>
                   {
                       MessageBox.Show(error);
                   }));

我已使用 RestSharp 完成此操作。

更多详情请点击此处

http://restsharp.org/

关于c# - 如何从 silverlight 应用程序调用 Web api,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18778861/

相关文章:

c# - 如何以编程方式将项目添加到 WP7 中的 PanoramaItem

c# - Parallel.ForEach 和 ConcurrentDictionary 比常规字典慢

json - 来自 JSON 的 Swift 4 解码翻倍

c# - 如何在 MVC WEB API 中修剪所有传入的 Json 对象字段?

asp.net-mvc - WebApi 帮助页面说明

c# - 为什么这段代码在编译正常时会引发 'does not exist in namespace' 错误?

c# - 依赖注入(inject)和第三方 API - 带 PI 的扩展方法或带 CI 的包装器

java - JSON:从数据库(DB2)插入和检索

android - 如何从 FIREBASE 将数据检索到回收站 View

asp.net-core - 如何使用 ASP.Net Core 3、SPA 应用程序对无效的 api 请求返回错误