AjaxResponse为ABP自动包装的JSON格式
    /// <summary>
/// 通过地址和参数取得返回OutPut数据
/// </summary>
/// <param name="url"></param>
/// <param name="input">请求参数</param>
/// <returns></returns>
public static OutPut ResultGet(string url, object input = null)
{
var data = Get(url, input);
var response = data.JsonToObject<AjaxResponse>(); if (response.Success == false)
{
var str = data.JsonToObject<AjaxResponse>();
throw new Exception(str.Error.Message);
}
return response.Result.ToString().JsonToObject<OutPut>();
} /// <summary>
/// 通过地址和参数取得返回OutPut数据
/// </summary>
/// <param name="url"></param>
/// <param name="input">请求参数</param>
/// <returns></returns>
public static OutPut ResultPost(string url, object input = null)
{
var data = Post(url, input);
var response = data.JsonToObject<AjaxResponse>(); if (response.Success == false)
{
var str = data.JsonToObject<AjaxResponse>();
throw new Exception(str.Error.Message);
}
return response.Result.ToString().JsonToObject<OutPut>();
} /// <summary>
///通过地址和我反序列后的JSON取得返回GeneralOutPut数据
/// </summary>
/// <param name="url">请求地址</param>
/// <param name="input">请求参数</param>
/// <returns>请求返回的结果</returns>
private static string Get(string url, object input = null)
{
var properties = input?.GetType().GetProperties();
var parm = string.Empty;
foreach (var propertie in properties)
{
var name = propertie.Name;
var value = input.GetType().GetProperty(name).GetValue(input);//直接根据属性的名字获取其值 parm += $"&{ name}={value}";
} parm = parm.Trim('&');
url = $"{url}?{parm}"; // Prepare web request...
HttpWebRequest request = (HttpWebRequest)WebRequest.Create(url);
request.Method = "GET";
request.ContentType = "application/json"; return HttpRequest(request);
} /// <summary>
/// 指定Post地址使用Get 方式获取全部字符串
/// </summary>
/// <param name="url">请求后台地址</param>
/// <returns></returns>
public static string Post(string url, object input)
{
HttpWebRequest req = (HttpWebRequest)WebRequest.Create(url);
req.Method = "POST";
req.ContentType = "application/x-www-form-urlencoded"; #region 添加Post 参数
var parm = Serialization.JsonSerialize(input);
byte[] data = Encoding.UTF8.GetBytes(parm);
req.ContentLength = data.Length;
using (Stream reqStream = req.GetRequestStream())
{
reqStream.Write(data, , data.Length);
reqStream.Close();
}
#endregion return HttpRequest(req);
} /// <summary>
/// 请求的主体部分(由此完成请求并返回请求结果)
/// </summary>
/// <param name="request">请求的对象</param>
/// <returns>请求返回结果</returns>
private static string HttpRequest(HttpWebRequest request)
{
HttpWebResponse response = null; try
{
response = (HttpWebResponse)request.GetResponse();
}
catch (WebException ex)
{
response = (HttpWebResponse)ex.Response;
} string result = string.Empty;
using (StreamReader reader = new StreamReader(response.GetResponseStream()))
{
result = reader.ReadToEnd();
} return result;
} /// <summary>
/// URL拼写完整性检查
/// </summary>
/// <param name="url">待检查的URL</param>
private static string UrlCheck(string url)
{
if (!url.StartsWith("http://") && !url.StartsWith("https://"))
url = "http://" + url; return url;
}

ABP框架中微服务跨域调用其它服务接口的更多相关文章

  1. 实现jquery.ajax及原生的XMLHttpRequest跨域调用WCF服务的方法

    关于ajax跨域调用WCF服务的方法很多,经过我反复的代码测试,认为如下方法是最为简便的,当然也不能说别人的方法是错误的,下面就来上代码,WCF服务定义还是延用上次的,如: namespace Wcf ...

  2. jquery中的jsonp跨域调用

                                                    jquery jsonp跨域调用接口

  3. jquery中的jsonp跨域调用(接口)

                                                                           jquery jsonp跨域调用接口

  4. PHP中JSON的跨域调用

    主调文件index.html <script type="text/javascript"> function getProfile(str) { var arr = ...

  5. vue.js vue-cli 中解决 axios 跨域调用的问题

    修改 /config/index.js 文件如下: proxyTable: { '/api': { target: 'http://chifan.local', changeOrigin: true, ...

  6. jquery跨域调用wcf

    使用jquery跨域调用wcf服务的时候会报如下错误 $.ajax({ url: 'http://localhost:28207/Service1.svc/GetData', method: 'get ...

  7. AJAX跨域调用ASP.NET MVC或者WebAPI服务的解决方案

    问题描述 当跨域(cross domain)调用ASP.NET MVC或者ASP.NET Web API编写的服务时,会发生无法访问的情况. 重现方式 使用模板创建一个最简单的ASP.NET Web ...

  8. Ajax跨域访问wcf服务中所遇到的问题总结。

    工具说明:vs2012,sql server 2008R2 1.首先,通过vs2012建立一个wcf服务项目,建立好之后.再新开一个vs2012 建立web项目,通过jQuery的ajax方法访问服务 ...

  9. 关于AJAX跨域调用ASP.NET MVC或者WebAPI服务的问题及解决方案

      作者:陈希章 时间:2014-7-3 问题描述 当跨域(cross domain)调用ASP.NET MVC或者ASP.NET Web API编写的服务时,会发生无法访问的情况. 重现方式 使用模 ...

随机推荐

  1. vprintf 和 vsnpintf 的用法

    函数定义: int vprintf ( const char * format, va_list arg ); printf() and friends are for normal use. vpr ...

  2. 6.ZigZag Conversion(Graph, traverse)

    The string "PAYPALISHIRING" is written in a zigzag pattern on a given number of rows like ...

  3. 对.NET中导出数据到EXCEL的几种方法探讨

    最近在做一个报表系统的时候,需要把DATASET中的数据导到EXCEL当中,于是在网上找了一遍,发现了好几种方法,本来以为应该差不多,但后来经过一一试用后,发现在性能上真的差别很大,现在就介绍一下,同 ...

  4. Hadoop新手学习指导

    对于我们新手入门学习hadoop大数据存储的朋友来说,首先了解一下云计算和云计算技术是有必要的.下面先是介绍云计算和云计算技术的:              云计算,是一种基于互联网的计算方式,通过这 ...

  5. adf 笔记

    1>jsf在bean中如何获取url参数,注意bean的范围,如果存在分页,范围不能设置为request,否则第二次加载的时候参数会为空. 最小设置为view,在当前页面中一直有效. 方法一:F ...

  6. sql ltrim/rtrim 字段中为中文时出现?的问题

    字段存储为中文,类型为nvarchar,使用ltrim时结果集中出现的问号,我的解决办法是:将问号replace掉

  7. PS大神的作品,每张都是科幻大片!

    相信大家在网上一定见过 各种PS的作品 但是要想成为“PS大神”, 不仅仅要会P图, 最关键的就是脑洞! 同样的马路破坏效果 在大神操作后变成了大片! 摩托车换成了骏马 这效果果然不一般! 这个绝对牛 ...

  8. dedecms目录说明

    1.有多个common.inc.php文件,注意引入的是哪一个,引入以后,里面的常量才可以用: 2.路径向上跳转 require_once('../../plus/phpexcel/PHPExcel. ...

  9. send发送一次buffer

    发送的字符串后面添加:\r\n 结束标志 否则发送1024或者程序接收默认的字节数 #include <stdio.h> #include <stdlib.h> #includ ...

  10. Java中通过SimpleDateFormat格式化当前时间:/** 输出格式:20060101010101001**/

    import java.util.*; import java.text.SimpleDateFormat; int y,m,d,h,mi,s,ms; String cur; Calendar cal ...