android 调用 asp.net web api,ASP.NET Web Api Get/Post方式调用Web Api

本文给出Get/Post方式访问Web Api的帮助方法,对于Put/Delete方式的调用跟Post调用类似。

一、Web Api调用帮助类

下面给出Web Api调用帮助类的代码:

using System;

using System.Collections.Generic;

using System.Net.Http;

using System.Net.Http.Headers;

using System.Text;

using System.Web;

namespace TestApi

{

///

/// WebApi访问帮助类

///

public class WebApiHepler

{

///

/// 生成最终URL

///

/// 基准URL(不含查询串)

/// 查询参数字典

/// 最终URL

private static string GetLastUrl(string baseUrl, Dictionary dictParam)

{

var sbUrl = new StringBuilder(baseUrl);

if (dictParam != null && dictParam.Count > 0)

{

sbUrl.Append("?");

int index = 0;

foreach (var item in dictParam)

{

sbUrl.Append(string.Format("{0}={1}", item.Key,

HttpUtility.UrlEncode(item.Value, Encoding.UTF8)));

if (index

{

sbUrl.Append("&");

}

index++;

}

}

var url = sbUrl.ToString();

return url;

}

///

/// GET方式调用Web Api

///

/// 基准URL(不含查询串)

/// 查询参数字典

/// 返回数据(Json格式)

/// 出错信息

/// 成功与否

public static bool Get(string baseUrl, Dictionary dictParam, out string result, out string errMsg)

{

errMsg = string.Empty;

result = string.Empty;

try

{

using (var client = new HttpClient())

{

client.DefaultRequestHeaders.Accept.Add(new MediaTypeWithQualityHeaderValue("application/json"));

var url = GetLastUrl(baseUrl, dictParam);

var tmpResult = client.GetAsync(url).Result;

tmpResult.EnsureSuccessStatusCode();

result = tmpResult.Content.ReadAsStringAsync().Result;

return true;

}

}

catch (Exception ex)

{

errMsg = ex.Message;

return false;

}

}

///

/// POST方式调用Web Api

///

/// 基准URL(不含查询串)

/// 查询参数字典

/// 传递实体数据(Json格式)

/// 返回数据(Json格式)

/// 出错信息

/// 成功与否

public static bool Post(string baseUrl, Dictionary dictParam, string parseData, out string result, out string errMsg)

{

errMsg = string.Empty;

result = string.Empty;

try

{

using (var client = new HttpClient())

{

client.DefaultRequestHeaders.Accept.Add(new MediaTypeWithQualityHeaderValue("application/json"));

var url = GetLastUrl(baseUrl, dictParam);

var content = new StringContent(parseData, Encoding.UTF8);

content.Headers.ContentType = new MediaTypeHeaderValue("application/json");

var tmpResult = client.PostAsync(url, content).Result;

tmpResult.EnsureSuccessStatusCode();

result = tmpResult.Content.ReadAsStringAsync().Result;

return true;

}

}

catch (Exception ex)

{

errMsg = ex.Message;

return false;

}

}

}

}

二、部分说明

对以上的代码作部分说明:

GetLastUrl方法用于根据基准URL和查询参数字典获取最终URL

client.DefaultRequestHeaders.Accept.Add(new MediaTypeWithQualityHeaderValue("application/json"));这句代码表示希望服务返回Json字符串。

content.Headers.ContentType = new MediaTypeHeaderValue("application/json"); 表示以Json格式传递实体内容。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值