Ajax 请求接口

1.获取 Token
string url = "http://10.168.9.21/api/services/Org/UserLogin";
var para = new
{
UserName = "admin",
Password = "edoc2"
};
var result_NewIncident = HttpUtility.HttpPostJson(url, para);
JObject obj = JObject.Parse(result_NewIncident);
string token = obj.GetValue("data").ToString();

附件是 请求通用类  Post Get    通过 webclient

/// <summary>
/// HttpUtility
/// </summary>
public class HttpUtility
{
/// <summary>
/// HttpClient
/// </summary>
private static HttpClient client = new HttpClient(new HttpClientHandler() { AutomaticDecompression = DecompressionMethods.Deflate | DecompressionMethods.GZip });

/// <summary>
/// Content-Type:application/json
/// </summary>
/// <param name="apiUrl"></param>
/// <param name="data"></param>
/// <returns></returns>
public static string HttpPostJson(string apiUrl, Object data)
{
string result = string.Empty;

//client.DefaultRequestHeaders.Add("Authorization", $"{Token.type} {Token.access_token}");

var postData = JsonConvert.SerializeObject(data);

var httpContent = new StringContent(postData, Encoding.UTF8);
httpContent.Headers.ContentType = new MediaTypeHeaderValue("application/json");
var response = client.PostAsync(apiUrl, httpContent);

response.Wait();

if (response.IsCompleted)
{
var stream = response.Result.Content.ReadAsStreamAsync();

stream.Wait();
using (var reader = new StreamReader(stream.Result))
{
result = reader.ReadToEnd();

}
}

return result;
}

/// <summary>
/// Content-Type:application/json
/// </summary>
/// <param name="apiUrl"></param>
/// <returns></returns>
public static string HttpGetJson(string apiUrl)
{
string result = string.Empty;

//client.DefaultRequestHeaders.Add("Authorization", $"{Token.type} {Token.access_token}");

var response = client.GetAsync(apiUrl);

response.Wait();

if (response.IsCompleted)
{
var stream = response.Result.Content.ReadAsStreamAsync();

stream.Wait();
using (var reader = new StreamReader(stream.Result))
{
result = reader.ReadToEnd();
}
}

return result;

}

/// <summary>
/// Content-Type:application/x-www-form-urlencoded
/// </summary>
/// <param name="apiUrl"></param>
/// <param name="dict"></param>
/// <returns></returns>
public static string HttpPostForm(string apiUrl, IDictionary<string, string> dict)
{
string result = string.Empty;

//client.DefaultRequestHeaders.Add("Authorization", $"{Token.type} {Token.access_token}");

var httpContent = new FormUrlEncodedContent(dict);
httpContent.Headers.ContentType = new MediaTypeHeaderValue("application/x-www-form-urlencoded");
var response = client.PostAsync(apiUrl, httpContent);

response.Wait();

if (response.IsCompleted)
{
var stream = response.Result.Content.ReadAsStreamAsync();

stream.Wait();
using (var reader = new StreamReader(stream.Result))
{
result = reader.ReadToEnd();
}
}

return result;
}
}

原文地址:https://www.cnblogs.com/wusirAaron/p/10991242.html

时间: 2024-10-10 18:24:24

Ajax 请求接口的相关文章

ajax请求接口数据

/** * 定义全局变量 */ var V_WEBBASE = "https://tsch.fromfuture.cn:7714/GZ/dtdocsfconroom/addfollowup?guid="; //入参var code = ""; //机构码var guid = ""; //患者IDvar docguid = ""; //医生ID var temperature = ""; //体温var fo

ajax请求接口

<!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title></title> </head> <body> <script src="js/jquery-1.11.3.js" type="text/javascript" charset="utf-8"><

IE浏览器下使用AJAX登陆接口请求缓存与登陆不了的问题解决

问题: 在IE浏览器下面,登陆的时候老是登陆不上,但是打开控制台的时候再登陆却能登陆上. 分析: 通过抓包,发现,在不打开控制台的时候,少了一个接口的请求,却返回了改接口的返回信息,但是返回信息并不是我想要的,于是就怀疑是IE浏览器在AJAX请求的时候,并不是每次都有真正地请求到,而是在缓存中抓取上次的信息. 解决: 1.在调用接口上加上不定参数,使每次都发出新的请求 URL + '?v='+Math.random() 2.从异步与非异步的方式来解决,因为 $.ajax 请求默认是异步的,这样子

使用js+Ajax请求API接口数据-带请求头方式

先上代码: <script type="text/javascript"> function zLoginCheck() { var Account = 'admin; var Password = 'DC483E80A7A0BD9EF71D8CF973673924'; var str = { Account: Account, Password: Password } $.ajax({ type: "POST", url: '/Handle/zLogi

ajax请求node.js接口时出现 No &#39;Access-Control-Allow-Origin&#39; header is present on the requested resource错误

ajax请求node.js接口出现了如下的错误: XMLHttpRequest cannot load http://xxx.xxx.xx.xx:8888/getTem?cityId=110105&date=2015-03-04. No 'Access-Control-Allow-Origin' header is present on the requested resource. Origin 'null' is therefore not allowed access. 百度了一下,原来是

ajax跨域请求接口介绍及解决方案

在前端开发过程中,将常出现前端代码和后台服务不在一个服务器的情况,这时候前端js代码调用后台接口,会出现跨域问题.: 1.这里的域是通过URL的头部来识别的.浏览器并不会去尝试判断相同的ip地址对应着两个域或者两个域是否在同一个ip上.URL的头部指window.location.protocol +window.location.host,也可以理解为"Domains, protocols and ports must match". 2.因为协议.IP.端口造成的跨域问题,只修改前

ajax请求jesery接口无法获取参数的问题解决方案

jesery是强大的RESTful api框架, 很多人在用它做web项目时会遇到这样一个问题: ajax请求jesery接口无法获取输入参数, 可明明接口已经指明了Consume是application/x-www-form-urlencoded, 为什么接口获取的输入参数都为Null. 其实, 要解决这个问题, 要注意一个细节, 就是浏览器在使用jquery ajax方法发送请求,默认会用contentType为application/x-www-form-urlencoded, 尾巴再 带

Ajax请求传递参数遇到的问题

想写个同类型的,代码未测. 什么是WebAPI?我的理解是WebAPI+JQuery(前端)基本上能完成Web MVC的功能,即:这么理解吧,WebAPI相当于Web MVC的后台部分. 接下来直接上例子吧,都是我在学习过程中遇到或者发现的一些问题.  一.创建WebAPI项目 (这个环节不是本章重点) 二.传递参数遇到的问题 后台实体类(Person): 1 namespace WebApi.Models 2 { 3 public class Person 4 { 5 6 public int

ajax请求获取的数据无法赋值给全局变量问题总结

一.总结: 1.问题描述: 今天做项目遇到在用表单显示详细信息的过程中ajax请求获取的数据无法赋值给全局变量的情况,从列表页面进入详情页,在详情页面被渲染了之后就会调用js文件里的接口向服务器请求数据,除了详情页面被加载之后需要向服务器发送ajax请求,在详情页面还有几个表单控件的属性需要去请求服务器获取实际项目中要求要显示的数据. 如下代码,直接在ajax请求中改变表单控件的值,避开了给全局变量赋值. 给全局变量赋值的解决办法,给ajax请求设置async为false,表示请求为同步请求: