----------------------------------------------------------------- ajax 调用接口---------------------------------------------------

<script type="text/javascript">

$(document).ready(function () {
$.ajax({
//提交数据的类型 POST GET
type: "POST",
//提交的网址
url: "http://localhost:8088/test/",
//提交的数据
data: '{ "interface": "interface_test","type": "web","ver": 1,"uid": "test","pwd": "123456" }',
//返回数据的格式
datatype: "json",//"xml","html","script","json","jsonp","text".
//在请求之前调用的函数
//beforeSend: function () {
// // $("#msg").html("logining");
// alert(1);
//},
//成功返回之后调用的函数
success: function (data) {
alert(decodeURI(data));
alert(data.err);
alert(data.error);
},
//调用执行后调用的函数
complete: function (XMLHttpRequest,textStatus) {
},
//调用出错执行的函数
error: function () {
//请求出错处理
alert(0);
}
});
});

</script>

-----------------------------------------------------------------End---------------------------------------------------

----------------------C#-------------------------------------

调用接口的方法

/// <summary>
/// /post方法调用接口获取json文件内容
/// </summary>
static void ReadMethod2(string url,string pars)
{
string serviceAddress = url;
HttpWebRequest request = (HttpWebRequest)WebRequest.Create(serviceAddress);


request.Method = "POST";
request.ContentType = "application/json";
using (StreamWriter dataStream = new StreamWriter(request.GetRequestStream()))
{
dataStream.Write(pars);
dataStream.Close();
}
HttpWebResponse response = (HttpWebResponse)request.GetResponse();
string encoding = response.ContentEncoding;
if (encoding == null || encoding.Length < 1)
{
encoding = "UTF-8"; //默认编码
}
StreamReader reader = new StreamReader(response.GetResponseStream(),Encoding.GetEncoding(encoding));
string retString = reader.ReadToEnd();


Console.WriteLine(retString);//在控制台输入获取的内容
}

-----------------------接口调用的地方--------------------------------------------------------------------------------------------------------------------------------------------------------

static void Main(string[] args)
{
string url1 = "http://localhost:8088/test/";
string pars1 = File.ReadAllText("D:\\WorkSpace\\Test\\json_test.txt",Encoding.Default);


string result = PostHttpResponse.PostHttpResponseJson(url1,pars1);
Console.WriteLine(result);


string url = "http://localhost:8088/test/";
string pars = @"{ ""interface"": ""interface_test"",""type"": ""web"",""ver"": 1,""uid"": ""test"",""pwd"": ""123456""}";
ReadMethod2(url,pars);
Console.Read();
}

-----------------------PostHttpResponse 类--------------------------------------------------------------------------------------------------------------------------------------------------------

using System; using System.Collections.Generic; using System.IO; using System.IO.Compression; using System.Linq; using System.Net; using System.Net.Security; using System.Security.Cryptography.X509Certificates; using System.Text; using System.Threading.Tasks; namespace ConsoleApplicationTest { public class PostHttpResponse { #region Static Field private static readonly string DefaultUserAgent = "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.2; SV1; .NET CLR 1.1.4322; .NET CLR 2.0.50727)"; #endregion #region public Method public static string PostHttpResponseJson(string url) { string json = string.Empty; Encoding encoding = Encoding.UTF8; HttpWebResponse Response = CreatePostHttpResponseJson(url,null,encoding,null); json = GetStream(Response,encoding); return json; } public static string PostHttpResponseJson(string url,string postJson) { string json = string.Empty; Encoding encoding = Encoding.UTF8; HttpWebResponse Response = CreatePostHttpResponseJson(url,postJson,encoding); return json; } /// <summary> /// 创建POST方式Json数据的HTTP请求(包括了https站点请求) /// </summary> /// <param name="url">请求的URL</param> /// <param name="parameters">随同请求POST的参数名称及参数值字典</param> /// <param name="timeout">请求的超时时间</param> /// <param name="userAgent">请求的客户端浏览器信息,可以为空</param> /// <param name="requestEncoding">发送HTTP请求时所用的编码</param> /// <param name="cookies">随同HTTP请求发送的Cookie信息,如果不需要身份验证可以为空</param> /// <returns></returns> public static HttpWebResponse CreatePostHttpResponseJson(string url,string postJson,string parameters,int? timeout,string userAgent,Encoding requestEncoding,string referer) { if (string.IsNullOrEmpty(url)) { throw new ArgumentNullException("url"); } if (requestEncoding == null) { throw new ArgumentNullException("requestEncoding"); } HttpWebRequest request = null; //如果是发送HTTPS请求 if (url.StartsWith("https",StringComparison.OrdinalIgnoreCase)) { ServicePointManager.ServerCertificateValidationCallback = new RemoteCertificateValidationCallback(CheckValidationResult); request = WebRequest.Create(url) as HttpWebRequest; request.ProtocolVersion = HttpVersion.Version10; } else { request = WebRequest.Create(url) as HttpWebRequest; } request.Method = "POST"; //服务端 判断 客户端 提交的是否是 JSON数据 时 request.ContentType = "application/json;charset=UTF-8"; request.KeepAlive = true; if (!string.IsNullOrEmpty(userAgent)) { request.UserAgent = userAgent; } else { request.UserAgent = DefaultUserAgent; } if (timeout.HasValue) { request.Timeout = timeout.Value; } //如果需要POST数据 #region post parameter 类似querystring格式 if (parameters != null) { byte[] data = requestEncoding.GetBytes(parameters); using (Stream stream = request.GetRequestStream()) { stream.Write(data,data.Length); stream.Close(); } } #endregion #region post json if (!string.IsNullOrEmpty(postJson)) { using (var streamWriter = new StreamWriter(request.GetRequestStream())) { //string json = "{\"user\":\"test\"," + // "\"password\":\"bla\"}"; streamWriter.Write(postJson); streamWriter.Flush(); streamWriter.Close(); } } #endregion if (!string.IsNullOrEmpty(referer)) { request.Referer = referer; } HttpWebResponse response = request.GetResponse() as HttpWebResponse; if (request.CookieContainer != null) { response.Cookies = request.CookieContainer.GetCookies(request.RequestUri); } return response; } #endregion #region Private Method private static bool CheckValidationResult(object sender,X509Certificate certificate,X509Chain chain,SslPolicyErrors errors) { return true; //总是接受 } /// <summary> /// 将response转换成文本 /// </summary> /// <param name="response"></param> /// <param name="encoding"></param> /// <returns></returns> private static string GetStream(HttpWebResponse response,Encoding encoding) { try { if (response.StatusCode == HttpStatusCode.OK) { switch (response.ContentEncoding.ToLower()) { case "gzip": { string result = Decompress(response.GetResponseStream(),encoding); response.Close(); return result; } default: { using (StreamReader sr = new StreamReader(response.GetResponseStream(),encoding)) { string result = sr.ReadToEnd(); sr.Close(); sr.dispose(); response.Close(); return result; } } } } else { response.Close(); } } catch (Exception e) { throw e; } return ""; } private static string Decompress(Stream stream,Encoding encoding) { byte[] buffer = new byte[100]; //int length = 0; using (GZipStream gz = new GZipStream(stream,CompressionMode.Decompress)) { //GZipStream gzip = new GZipStream(res.GetResponseStream(),CompressionMode.Decompress); using (StreamReader reader = new StreamReader(gz,encoding)) { return reader.ReadToEnd(); } /* using (MemoryStream mstemp = new MemoryStream()) { //解压时直接使用Read方法读取内容,不能调用GZipStream实例的Length等属性,否则会出错:System.NotSupportedException: 不支持此操作; while ((length = gz.Read(buffer,buffer.Length)) != 0) { mstemp.Write(buffer,length); } return encoding.GetString(mstemp.ToArray()); } * */ } } #endregion /// <summary> /// 创建POST方式的HTTP请求 /// </summary> /// <param name="url">请求的URL</param> /// <param name="parameters">随同请求POST的参数名称及参数值字典</param> /// <param name="timeout">请求的超时时间</param> /// <param name="userAgent">请求的客户端浏览器信息,可以为空</param> /// <param name="requestEncoding">发送HTTP请求时所用的编码</param> /// <param name="cookies">随同HTTP请求发送的Cookie信息,如果不需要身份验证可以为空</param> /// <returns></returns> public static HttpWebResponse CreatePostHttpResponse(string url,IDictionary<string,string> parameters,CookieCollection cookies) { if (string.IsNullOrEmpty(url)) { throw new ArgumentNullException("url"); } if (requestEncoding == null) { throw new ArgumentNullException("requestEncoding"); } HttpWebRequest request = null; //如果是发送HTTPS请求 if (url.StartsWith("https",StringComparison.OrdinalIgnoreCase)) { ServicePointManager.ServerCertificateValidationCallback = new RemoteCertificateValidationCallback(CheckValidationResult); request = WebRequest.Create(url) as HttpWebRequest; request.ProtocolVersion = HttpVersion.Version10; } else { request = WebRequest.Create(url) as HttpWebRequest; } request.Method = "POST"; request.Headers.Add("X_REG_CODE","288a633ccc1"); request.Headers.Add("X_MACHINE_ID","a306b7c51254cfc5e22c7ac0702cdf87"); request.Headers.Add("X_REG_SECRET","de308301cf381bd4a37a184854035475d4c64946"); request.Headers.Add("X_STORE","0001"); request.Headers.Add("X_BAY","0001-01"); request.Headers.Add("X-Requested-With","XMLHttpRequest"); request.ContentType = "application/x-www-form-urlencoded"; request.Headers.Add("Accept-Language","zh-CN"); request.Headers.Add("Accept-Encoding","gzip,deflate"); request.Accept = "*/*"; if (!string.IsNullOrEmpty(userAgent)) { request.UserAgent = userAgent; } else { request.UserAgent = DefaultUserAgent; } if (timeout.HasValue) { request.Timeout = timeout.Value; } // if (cookies != null) // { request.CookieContainer = new CookieContainer(); // request.CookieContainer.Add(cookies); // } //如果需要POST数据 if (!(parameters == null || parameters.Count == 0)) { StringBuilder buffer = new StringBuilder(); int i = 0; foreach (string key in parameters.Keys) { if (i > 0) { buffer.AppendFormat("&{0}={1}",key,parameters[key]); } else { buffer.AppendFormat("{0}={1}",parameters[key]); } i++; } byte[] data = requestEncoding.GetBytes(buffer.ToString()); using (Stream stream = request.GetRequestStream()) { stream.Write(data,data.Length); } } HttpWebResponse res; try { res = (HttpWebResponse)request.GetResponse(); } catch (WebException ex) { res = (HttpWebResponse)ex.Response; } return res; } } }

ajax 调用接口 C# 调用接口 PostHttpResponse 类的更多相关文章

  1. 关于h5中的fetch方法解读(小结)

    这篇文章主要介绍了关于h5中的fetch方法解读(小结),fetch身为H5中的一个新对象,他的诞生,是为了取代ajax的存在而出现,有兴趣的可以了解一下

  2. ios – 将视频分享到Facebook

    我正在编写一个简单的测试应用程序,用于将视频从iOS上传到Facebook.由于FacebookSDK的所有文档都在Objective-C中,因此我发现很难在线找到有关如何使用Swift执行此操作的示例/教程.到目前为止我有这个在我的UI上放置一个共享按钮,但它看起来已禁用,从我读到的这是因为没有内容设置,但我看不出这是怎么可能的.我的getVideoURL()函数返回一个NSURL,它肯定包含视

  3. ios – 错误域= NSURLErrorDomain代码= -1003“找不到具有指定主机名的服务器

    当我尝试在设备上运行应用程序时出现此错误.当我在模拟器上运行它并且post请求正常工作时,我没有收到此错误.这是我的代码片段:任何帮助表示赞赏.谢谢解决方法此错误通常会提示DNS相关问题.检查设备上的DNS设置并确认您可以使用Safari或其他浏览器浏览互联网.如果有一个url,你可以在同一台服务器上获取,尝试直接在设备上的Safari中访问它.

  4. ios – 使用NSURLSession获取JSON数据

    我试图从谷歌距离api使用NSURLSession获取数据,但如下所示,当我打印响应和数据时,我得到的结果为NULL.可能是什么问题?

  5. ios – Xcode Bot:如何在post触发器脚本上获得.ipa路径?

    我正在使用机器人来存档iOS应用程序,我需要获取.ipa产品路径才能将其发布到我们的分发系统中.机器人设置:并使用脚本打印所有env变量,其中不包含ipa文件的路径.此外,一些变量指向不存在的目录,即:XCS_OUTPUT_DIR这里的env变量输出:除此之外,我还能够确认.ipa文件是在另一个文件夹中创建的(/IntegrationAssets//

  6. ios – 错误域= com.alamofire.error.serialization.response代码= -1011“请求失败:禁止

    任何人都可以帮我解决以下错误–>在AFNetworking2.5中使用“删除”方法时出错解决方法我发现,如果我的手机时钟不同步……它不允许我更新…也许检查你的手机设置到正确的时间“自动区”,看看是否有效…

  7. ios – 使用CocoaPods post install hook将自定义路径添加到HEADER_SEARCH_PATHS

    解决方法在Podfile中定义一个方法:然后在post_install中调用该方法:

  8. iOS网页/原生应用Facebook登录弹出 – 失败?

    如果我重新启动app/web-app,用户将自动登录,并重定向到成功页面.我认为是导致问题的原因当您在Firefox/Chrome/Safari浏览器中运行网页时,Facebook登录对话框会弹出一个弹出窗口或另一个选项卡.我相信这是这个弹出页面的一个问题,以及当成功登录时Javascript如何与自身通信.window.close的东西没有返回的根页面…失败的解决方法由于应用程序挂在前面提到的URL上,我决定在shouldStartLoadWithRequest(…)中添加if语句以强制UIWebvie

  9. ios – Watchkit新会话不起作用

    我的手表扩展中有两个视图控制器.每当我打电话时我只得到第一个视图控制器的响应,并在第二个viewcontroller中得到错误WCSession在app和watch扩展中启动.任何建议?

  10. 使用Firebase iOS Swift将特定设备的通知推送到特定设备

    我非常感谢PushNotifications的帮助.我的应用聊天,用户可以直接向对方发送短信.但是如果没有PushNotifications,它就没有多大意义.它全部设置在Firebase上.如何将推送通知从特定设备发送到特定设备?

随机推荐

  1. xe-ajax-mock 前端虚拟服务

    最新版本见Github,点击查看历史版本基于XEAjax扩展的Mock虚拟服务插件;对于前后端分离的开发模式,ajax+mock使前端不再依赖后端接口开发效率更高。CDN使用script方式安装,XEAjaxMock会定义为全局变量生产环境请使用xe-ajax-mock.min.js,更小的压缩版本,可以带来更快的速度体验。

  2. vue 使用 xe-ajax

    安装完成后自动挂载在vue实例this.$ajaxCDN安装使用script方式安装,VXEAjax会定义为全局变量生产环境请使用vxe-ajax.min.js,更小的压缩版本,可以带来更快的速度体验。cdnjs获取最新版本点击浏览已发布的所有npm包源码unpkg获取最新版本点击浏览已发布的所有npm包源码AMD安装require.js安装示例ES6Module安装通过Vue.use()来全局安装示例./Home.vue

  3. AJAX POST数据中文乱码解决

    前端使用encodeURI进行编码后台java.net.URLDecoder进行解码编解码工具

  4. Koa2框架利用CORS完成跨域ajax请求

    实现跨域ajax请求的方式有很多,其中一个是利用CORS,而这个方法关键是在服务器端进行配置。本文仅对能够完成正常跨域ajax响应的,最基本的配置进行说明。这样OPTIONS请求就能够通过了。至此为止,相当于仅仅完成了预检,还没发送真正的请求呢。

  5. form提交时,ajax上传文件并更新到&lt;input&gt;中的value字段

  6. ajax的cache作用

    filePath="+escape;},error:{alert;}});解决方案:1.加cache:false2.url加随机数正常代码:网上高人解读:cache的作用就是第一次请求完毕之后,如果再次去请求,可以直接从缓存里面读取而不是再到服务器端读取。

  7. 浅谈ajax上传文件属性contentType = false

    默认值为contentType="application/x-www-form-urlencoded".在默认情况下,内容编码类型满足大多数情况。在这里,我们主要谈谈contentType=false.在使用ajax上传文件时:在其中先封装了一个formData对象,然后使用post方法将文件传给服务器。说到这,我们发现在JQueryajax()方法中我们使contentType=false,这不是冲突了吗?这就是因为当我们在form标签中设置了enctype=“multipart/form-data”,

  8. 909422229_ajaxFileUpload上传文件

    ajaxFileUpload.js很多同名的,因为做出来一个很容易。我上github搜AjaxFileUpload出来很多类似js。ajaxFileUpload是一个异步上传文件的jQuery插件传一个不知道什么版本的上来,以后不用到处找了。语法:$.ajaxFileUploadoptions参数说明:1、url上传处理程序地址。2,fileElementId需要上传的文件域的ID,即的ID。3,secureuri是否启用安全提交,默认为false。4,dataType服务器返回的数据类型。6,error

  9. AJAX-Cache:一款好用的Ajax缓存插件

    原文链接AJAX-Cache是什么Ajax是前端开发必不可少的数据获取手段,在频繁的异步请求业务中,我们往往需要利用“缓存”提升界面响应速度,减少网络资源占用。AJAX-Cache是一款jQuery缓存插件,可以为$.ajax()方法扩展缓存功能。

  10. jsf – Ajax update/render在已渲染属性的组件上不起作用

    我试图ajax更新一个有条件渲染的组件。我可以确保#{user}实际上是可用的。这是怎么引起的,我该如何解决呢?必须始终在ajax可以重新呈现之前呈现组件。Ajax正在使用JavaScriptdocument.getElementById()来查找需要更新的组件。但是如果JSF没有将组件放在第一位,那么JavaScript找不到要更新的内容。解决方案是简单地引用总是渲染的父组件。

返回
顶部