精华内容
下载资源
问答
  • 心知天气API如何调用与json数据如何显示

    心知天气官网:https://www.seniverse.com/doc

    首先需要注册获得密钥和ID.

    因为我不是会员,这里就简单介绍下,怎么调用并显示。

    Json数据如下图所示:

    {

    results: [

    {

    location: {

    id: "WX4FBXXFKE4F",

    name: "北京",

    country: "CN",

    path: "北京,北京,中国",

    timezone: "Asia/Shanghai",

    timezone_offset: "+08:00"

    },

    now: {

    text: "多云",

    code: "4",

    temperature: "35"

    },

    last_update: "2017-05-20T14:50:00+08:00"

    }

    ]

    }

    功能比较简单,输入界面

    点击weather按钮

     

    这个只是我再做demo学习这个api用的例子。最后我把这个功能应用到我的网页中,是这样的。

     

    下面我附上demo的代码,你们对这个调用过程清楚了可以自己去设置界面。有时候虽然功能很lou界面十分美观,也会变得高大尚的。

     

    百度云盘:链接:http://pan.baidu.com/s/1o7Rb9Bc

    密码:zaig

     资源下载页:http://download.csdn.net/detail/qq_36305327/9847616

    <!DOCTYPE html>

    <html lang="en">

    <head>

    <meta charset="UTF-8">

    <meta name="viewport" content="width=device-width, initial-scale=1.0">

    <title>Seniverse API Jsonp Test Page</title>

    <script type="text/javascript" src="js/jquery.js"></script>

    //下面的代码是加密使用的,大家可以到我的百度云盘下载或者我的CSDN上传文件下载

    <script src="src/core.js"></script>

    <script src="src/cipher-core.js"></script>

    <script src="src/enc-base64.js"></script>

    <script src="src/hmac.js"></script>

    <script src="src/sha1.js"></script>

    </head>

    <body>

     

    <div id="content" style="background:blue;height:300px;">

    <input type="text" class="form-control" id="inputcity" aria-describedby="inputGroupSuccess3Status">

    <button type="button" id="queryweather" οnclick="weather()">Weather</button>

    </div>

    <script>

    /******** 本示例仅做开发参考使用,不建议在生产环境下暴露 key! ********/

    var UID = "U6F8E3F8AD"; // 测试用 用户ID,请更换成您自己的用户ID

    var KEY = "tff0na3ui2ana33x"; // 测试用key,请更换成您自己的 Key

    var API = "https://api.seniverse.com/v3/weather/now.json"; // 获取天气实况

    var LOCATION = "武汉";

    // 除拼音外,还可以使用 v3 id、汉语等形式

    // 获取当前时间戳

    var ts = Math.floor((new Date()).getTime() / 1000);

    // 构造验证参数字符串

    var str = "ts=" + ts + "&uid=" + UID;

     

    var result = CryptoJS.HmacSHA1(str,KEY);

    var sig = result.toString(CryptoJS.enc.Base64);

    sig = encodeURI(sig);

    str = str + "&sig=" + sig;

     

     

    var jsonpCallback = function(data) {

     

    var obj = document.getElementById('content');

    var weather = data.results[0];

    var text = [];

    //控制输入的内容

    text.push("Location: " + weather.location.path);

    text.push("Weather: " + weather.now.text);

    text.push("Temperature: " + weather.now.temperature);

    text.push("UpdateTime: " + weather.last_update);

     

    obj.innerText = text.join("\n");

    }

     

    function weather(){

    var LOCATION = document.getElementById('inputcity').value;

    alert(LOCATION);

    var url = API + "?location=" + LOCATION + "&" + str + "&callback=jsonpCallback";

    // 向 HTML 中动态插入 script 标签,通过 JSONP 的方式进行调用

    var newScript = document.createElement('script');

    newScript.type = 'text/javascript';

    newScript.src = url;

    $('body').append(newScript);

    }

     

     

    </script>

    </body>

    </html>

    如有任何意见和问题,可以到我的网站www.shaofee.com给我留言。如果你有方法可以留言,我必回访。

    展开全文
  • 效果如下:调用:www.webxml.com.cn调用:data.cma.cn如下:参考网站:城市天气数据获取接口:http://blog.csdn.net/u011331731/article/details/72765410  [python] 中国气象局 api 调用 : python 入门:...

    效果如下:

    调用:www.webxml.com.cn


    调用:data.cma.cn如下:


    参考网站:

    城市天气数据获取接口:http://blog.csdn.net/u011331731/article/details/72765410  

    [python] 中国气象局 api 调用 : python 入门:http://www.cnblogs.com/kingsanity/p/7758345.html

    免费天气API接口,全国天气免费接口,2018年3月测试稳定OK(Lucky没试过)

    http://blog.csdn.net/oqqsoso123456/article/details/72782386

    公司要求调用网站数据:筛选几个后,挑出2个,对比如下:

    两种气象数据调用网站区别对比

    运营单位

    覆盖城市

    获取要素

    免费要求

    收费标准

    API调用方式

    日访问次数

    优劣势

    1.       www.webxml.com.cn

    上海思集信息科技有限公司

    (卖削好的菠萝)

    2300多个中国城市和100多个国外城市

    5(温度,风向风力,湿度,紫外线强度,空气质量,未来5天天气信息)

    免费用户24小时内查询不超过50次并且获取二次数据大于间隔 600ms

    所有城市气象数据的调用168/

    WebServices调用返回XML格式

    仅限于1万次以内(数据2.5h更新一次)

    :集成性好,返回值直接可以用来显示。

    :权威性未知,价格相对较高,获取要素数目少,无法定制。

    2.

    data.cma.cn

    国家气象信息中心

    (中国气象局气象数据中心)

    (菠萝种植园)

    2170台站可选

    24(气温,最高气

    ,最低气温,体感温度,气压,海平面气压,最高气压,最低气压,水汽压,相对湿度,最小相对湿度,风力,2分钟平均风向(角度),最大风速的风向(角度),最大风速,极大风速的风向(角度),极大风速,2分钟平均风速,降水量,水平能见度(人工),总云量,低云量,云量(低云或中云),现在天气)

    个人实名制用

    户免费7

    可定制:单个台站,24条数据,日访问次数1万次内,2.4/

    WebServices调用返回Json格式

    1万次不限次的价位都可以选择(数据1h更新一次)

    :网站权威性高,获取要素数目多,可以根据需求定制台站和要素,价格较低。


    :得到的数据需自行解析,分解开发。


    第一个网站api的使用教程在这里(别人写的):http://www.cnblogs.com/fyluyg/p/6047819.html,链接如果无效,可以下载此源码包,链接:http://download.csdn.net/download/luckydog1120446388/10269716,选择里面的WebXMLScene代表第一个网站,里面的dataCmaScene代表第二个网站(中央气象局数据网国家权威网站)

    ppt:https://download.csdn.net/download/luckydog1120446388/10313029


    展开全文
  • c# 调用API

    千次阅读 2012-12-06 10:36:06
    这个网站主要是一个wiki,允许开发者发现,编辑,增加PInvoke的签名,用户自定义类型和从托管代码(指c#和VB.net开发语言)访问win32和其他非托管api的信息。 世界各地的.Net开发者可以很容易分享自己有价值的东西...

    1      DLLImport的使用

    using System;

    using System.Runtime.InteropServices; //命名空间

    class Example

    {

    //用DllImport 导入Win32的MessageBox函数

        [DllImport("user32.dll", CharSet = CharSet.Unicode)]

    public static extern int MessageBox(IntPtr hWnd, String text, String caption, uint type);

    //方法被声明为 static。这是 P/Invoke 方法所要求的,因为在该 Windows API 中没有//一致的实例概念。接下来,还要注意该方法被标记为 extern。这是提示编译器该方法是通//过一个从 DLL 导出的函数实现的,因此不需要提供方法体。

        static void Main()

        {

            // Call the MessageBox function using platform invoke.

            MessageBox(new IntPtr(0), "Hello World!", "Hello Dialog", 0);

        }

    }

    使用非托管DLL函数并不困难,下面我们可以详细的了解上面的代码的含义。首先介绍什么是托管代码,什么是非托管代码。然后再详细介绍DLLImport的使用方法和各字段的意义。

    2      托管代码 (managed code)

    .NET Framework的核心是其运行库的执行环境,称为公共语言运行库(CLR)或.NET运行库。通常将在CLR的控制下运行的代码称为托管代码(managed code)。

    运行库环境(而不是直接由操作系统)执行的代码。托管代码应用程序可以获得公共语言运行库服务,例如自动垃圾回收、运行库类型检查和安全支持等。这些服务帮助提供独立于平台和语言的、统一的托管代码应用程序行为。

      托管代码是可以使用20多种支持Microsoft .NET Framework的高级语言编写的代码,它们包括:C#, J#, Microsoft Visual Basic .NET, Microsoft JScript .NET, 以及C++。所有的语言共享统一的类库集合,并能被编码成为中间语言(IL)。运行库编译器(runtime-aware ompiler)在托管执行环境下编译中间语言(IL)使之成为本地可执行的代码,并使用数组边界和索引检查,异常处理,垃圾回收等手段确保类型的安全。

      在托管执行环境中使用托管代码及其编译,可以避免许多典型的导致安全黑洞和不稳定程序的编程错误。同样,许多不可靠的设计也自动的被增强了安全 性,例如类型安全检查,内存管理和释放无效对象。程序员可以花更多的精力关注程序的应用逻辑设计并可以减少代码的编写量。这就意味着更短的开发时间和更健 壮的程序。

    简单点说,托管代码是microsoft的中间语言,他主要的作用是在.NET FRAMEWORK的CLR执行代码前去编译源代码,也就是说托管代码充当着翻译的作用,源代码在运行时分为两个阶段:

      1.源代码编译为托管代码;(所以源代码可以有很多种,如VB,C#,J#)

      2.托管代码编译为microsoft系统的.net平台专用文件(如类库、可执行文件等)。

    2.1     非托管代码 (unmanaged code)

      在公共语言运行库环境的外部,由操作系统直接执行的代码。非托管代码必须提供自己的垃圾回收、类型检查、安全支持等服务;它与托管代码不同,后者从公共语言运行库中获得这些服务。

    .net中托管代码的含义

    2.2     什么是托管?托管是什么意思?

    托管代码就是基于.net元数据格式的代码,运行于.net平台之上,所有的与操作系统的交换有.net来完成,就像是把这些功能委托给.net,所以称之为托管代码。非托管代码则反之。

    举个例子l

    Vc.net还可以使用mfc,atl来编写程序,他们基于MFC或者ATL,而不是.NET,所以是非托管代码,如果基于.net比如C#,VB.net则是托管代码

    非托管代码是指.NET解释不了的

    简单的说,托管代码的话,.net可以自动释放资料,非托管代码需要手动释放资料.

    什么是托管C++

    托管是.NET的一个专门概念,它倡导一种新的编程理念,因此我们完全可以把“托管”视为“.NET”。由托管概念所引发的C++应用程序包括托管代码、托管数据和托管类三个组成部分。

    托管代码

    .Net环境提供了许多核心的运行(RUNTIME)服务,比如异常处理和安全策略。为了能使用这些服务,必须要给运行环境提供一些信息代码(元数 据),这种代码就是托管代码。所有的C#、VB.NET、JScript.NET默认时都是托管的,但Visual C++默认时不是托管的,必须在编译器中使用命令行选项(/CLR)才能产生托管代码。

    托管数据

    与托管代码密切相关的是托管数据。托管数据是由公共语言运行的垃圾回收器进行分配和释放的数据。默认情况下,C#、Visual Basic 和 JScript.NET 数据是托管数据。不过,通过使用特殊的关键字,C# 数据可以被标记为非托管数据。Visual C++数据在默认情况下是非托管数据,即使在使用 /CLR 开关时也不是托管的。

    托管类

    尽管Visual C++数据在默认情况下是非托管数据,但是在使用C++的托管扩展时,可以使用“__gc”关键字将类标记为托管类。就像该名称所显示的那样,它表示类实 例的内存由垃圾回收器管理。另外,一个托管类也完全可以成为 .NET 框架的成员,由此可以带来的好处是,它可以与其他语言编写的类正确地进行相互操作,如托管的C++类可以从Visual Basic类继承等。但同时也有一些限制,如托管类只能从一个基类继承等。

    2.3     托管代码如何调用非托管代码(c sharp如何调用c++代码)?

    两种常用的做法:

    下载:

    http://download.microsoft.com/download/f/2/7/f279e71e-efb0-4155-873d-5554a0608523/CLRInsideOut2007_01.exe

    1. COM interop

    具体操作:

    a. 用atl写com服务程序

    b. 使用Tlbimp将atl写的com程序转换成 COM DLL

       用如下命令:

       tlbimp 你写的com.dll

       tlbimp是 .NET Framework SDK中附带的类型库导入程序。用这个命令即是把生成一个非托管com dll的托管包装。

    c. 托管客户端非常简单

       直接new一下,然后调用对应的方法即可。

    2. P/Invoke

    a. 在托管客户端增加一条 DllImport语句和一个方法的调用。

    介绍一个P/Invoke网站,http://pinvoke.net/

    这个网站主要是一个wiki,允许开发者发现,编辑,增加PInvoke的签名,用户自定义类型和从托管代码(指c#和VB.net开发语言)访问win32和其他非托管api的信息。

    世界各地的.Net开发者可以很容易分享自己有价值的东西给社区,

    2.4     托管代码和非托管代码效率的对比

    参加原文 来自http://www.cnblogs.com/loverswordsman/articles/1367131.html

    更详细的信息http://www.cnblogs.com/loverswordsman/articles/1367131.html

    3      DllImportAttribute 的字段

    在对托管代码进行 P/Invoke 调用时,DllImportAttribute 类型扮演着重要的角色。DllImportAttribute 的主要作用是给 CLR 指示哪个 DLL 导出您想要调用的函数。相关 DLL 的名称被作为一个构造函数参数传递给 DllImportAttribute。

    下表列出了所有与平台调用相关的特性字段。 对于每个字段,下表都将包含其默认值,并且会提供一个链接,用于获取有关如何使用这些字段定义非托管 DLL 函数的信息。http://msdn.microsoft.com/zh-cn/library/w4byd5y4.aspx

    字段

    说明

    BestFitMapping

    启用或禁用最佳匹配映射。

    CallingConvention

    指定用于传递方法参数的调用约定。 默认值为 WinAPI,该值对应于基于 32 位 Intel 的平台的 __stdcall。

    CharSet

    控制名称重整以及将字符串参数封送到函数中的方式。 默认值为 CharSet.Ansi。

    EntryPoint

    指定要调用的 DLL 入口点。

    ExactSpelling

    控制是否应修改入口点以对应于字符集。 对于不同的编程语言,默认值将有所不同。

    PreserveSig

    控制托管方法签名是否应转换成返回 HRESULT 并且返回值有一个附加的 [out, retval] 参数的非托管签名。

    默认值为 true(不应转换签名)。

    SetLastError

    允许调用方使用 Marshal.GetLastWin32Error API 函数来确定执行该方法时是否发生了错误。 在 Visual Basic 中,默认值为 true;在 C# 和 C++ 中,默认值为 false。

    ThrowOnUnmappableChar

    控件引发的异常,将无法映射的 Unicode 字符转换成一个 ANSI"?"字符。

    除了指出宿主 DLL 外,DllImportAttribute 还包含了一些可选属性,其中四个特别有趣:EntryPoint、CharSet、SetLastError 和 CallingConvention。http://www.360doc.com/content/11/0105/09 /3877783_84071078.shtml

    3.1     entrypoint

    入口点用于标识函数在 DLL 中的位置。在托管对象中,目标函数的原名或序号入口点将标识跨越交互操作边界的函数。此外,您可以将入口点映射到一个不同的名称,这实际上是将函数重命名。

    以下列出了重命名 DLL 函数的可能原因:

    ·        避免使用区分大小写的 API 函数名

    ·        符合现行的命名标准

    ·        提供采用不同数据类型的函数(通过声明同一 DLL 函数的多个版本)

    ·        简化对包含 ANSI 和 Unicode 版本的 API 的使用

    您可以使用 DllImportAttribute.EntryPoint 字段按名称或序号指定 DLL 函数。如果函数在方法定义中的名称与入口点在 DLL 的名称相同,则不必用 EntryPoint 字段来显式地标识函数。否则,使用以下属性形式之一来指示名称或序号:

        [DllImport("dllname", EntryPoint="Functionname")]

        [DllImport("dllname", EntryPoint="#123")]

       指定入口点名称时,您可以提供一个字符串来指示包含入口点的 DLL 的名称,或者也可以按序号来标识入口点。序号以 # 符号为前缀,如 #1。如果省略此字段,则公共语言运行库将使用以DllImportAttribute 标记的 .NET 方法的名称。

    下面的示例演示如何使用 EntryPoint 字段将代码中的 MessageBoxA 替换为 MsgBox

    using System.Runtime.InteropServices;

    public class Win32 {

        [DllImport("user32.dll", EntryPoint="MessageBoxA")]

        public static extern int MsgBox(int hWnd, String text, String caption, uint type);

    }    

    3.2     CharSet

    以下来自http://msdn.microsoft.com/zh-cn/library/7b93s42f(v=VS.80).aspx

    DllImportAttribute.CharSet 字段控制字符串封送处理并确定平台调用在 DLL 中查找函数名的方式。本主题将介绍这两种行为。

    对于采用字符串参数的函数,有些 API 将导出它们的两个版本:窄版本 (ANSI) 和宽版本 (Unicode)。例如,Win32 API 包含 MessageBox 函数的以下入口点名称:

    ·        MessageBoxA

    提供单字节字符 ANSI 格式,其特征是在入口点名称后附加一个“A”。对 MessageBoxA 的调用始终会以 ANSI 格式封送字符串,它常见于 Windows 95 和 Windows 98 平台。

    ·        MessageBoxW

    提供双字节字符 Unicode 格式,其特征是在入口点名称后附加一个“W”。对 MessageBoxW 的调用始终会以 Unicode 格式封送字符串,它常见于 Windows NT、Windows 2000 和 Windows XP 平台。

    CharSet 字段接受以下值:

    CharSet.Ansi(默认值)

    ·        字符串封送处理

    平台调用将字符串从托管格式 (Unicode) 封送为 ANSI 格式。

    ·        名称匹配

    在 DllImportAttribute.ExactSpelling 字段为 true(它是 Visual Basic 2005 中的默认值)时,平台调用将只搜索您指定的名称。例如,如果指定MessageBox,则平台调用将搜索 MessageBox,如果它找不到完全相同的拼写则失败。

    当 ExactSpelling 字段为 false(它是 C++ 和 C# 中的默认值)时,平台调用将首先搜索未处理的别名 (MessageBox),如果找不到未处理的别名,则将搜索已处理的名称 (MessageBoxA)。请注意,ANSI 名称匹配行为与 Unicode 名称匹配行为不同。

    CharSet.Unicode

    ·        字符串封送处理

    平台调用会将字符串从托管格式 (Unicode) 复制为 Unicode 格式。

    ·        名称匹配

    当 ExactSpelling 字段为 true(它是 Visual Basic 2005 中的默认值)时,平台调用将只搜索您指定的名称。例如,如果指定MessageBox,则平台调用将搜索 MessageBox,如果它找不到完全相同的拼写则失败。

    当 ExactSpelling 字段为 false(它是 C++ 和 C# 中的默认值)时,平台调用将首先搜索已处理的名称 (MessageBoxW),如果找不到已处理的名称,则将搜索未处理的别名 (MessageBox)。请注意,Unicode 名称匹配行为与 ANSI 名称匹配行为不同。

    CharSet.Auto

    ·        平台调用在运行时根据目标平台在 ANSI 和 Unicode 格式之间进行选择。

    下面的示例演示用于指定字符集的 MessageBox 函数的三个托管定义。在第一个定义中,通过省略,使CharSet 字段默认为 ANSI 字符集。

    [DllImport("user32.dll")]

    public static extern int MessageBoxA(int hWnd, String text, String caption, uint type);

    [DllImport("user32.dll", CharSet=CharSet.Unicode)]

    public static extern int MessageBoxW(int hWnd, String text, String caption, uint type);

    [DllImport("user32.dll", CharSet=CharSet.Auto)]

    public static extern int MessageBox(int hWnd, String text, String caption, uint type);

    CharSet.Ansi 和 CharSet.Unicode 的名称匹配规则大不相同。对于 Ansi 来说,如果将 EntryPoint 设置为“MyMethod”且它存在的话,则返回“MyMethod”。如果 DLL 中没有“MyMethod”,但存在“MyMethodA”,则返回“MyMethodA”。对于 Unicode 来说则正好相反。如果将 EntryPoint 设置为“MyMethod”且它存在的话,则返回“MyMethodW”。如果 DLL 中不存在“MyMethodW”,但存在“MyMethod”,则返回“MyMethod”。如果使用的是 Auto,则匹配规则与平台有关(在 Windows NT 上为 Unicode,在 Windows 98 上为 Ansi)。如果 ExactSpelling 设置为 true,则只有当 DLL 中存在“MyMethod”时才返回“MyMethod”。

    如果 DLL 函数不以任何方式处理文本,则可以忽略 DllImportAttribute 的 CharSet 属性。然而,当 Char 或 String 数据是等式的一部分时,应该将 CharSet 属性设置为 CharSet.Auto。这样可以使 CLR 根据宿主 OS 使用适当的字符集。如果没有显式地设置 CharSet 属性,则其默认值为 CharSet.Ansi。这个默认值是有缺点的,因为对于在 Windows 2000、Windows XP 和 Windows NT® 上进行的 interop 调用,它会消极地影响文本参数封送处理的性能。

    应该显式地选择 CharSet.Ansi 或 CharSet.Unicode 的 CharSet 值而不是使用 CharSet.Auto 的唯一情况是:您显式地指定了一个导出函数,而该函数特定于这两种 Win32 OS 中的某一种。ReadDirectoryChangesW API 函数就是这样的一个例子,它只存在于基于 Windows NT 的操作系统中,并且只支持 Unicode;在这种情况下,您应该显式地使用 CharSet.Unicode。

    有时,Windows API 是否有字符集关系并不明显。一种决不会有错的确认方法是在 Platform SDK 中检查该函数的 C 语言头文件。(如果您无法肯定要看哪个头文件,则可以查看 Platform SDK 文档中列出的每个 API 函数的头文件。)如果您发现该 API 函数确实定义为一个映射到以 A 或 W 结尾的函数名的宏,则字符集与您尝试调用的函数有关系。Windows API 函数的一个例子是在 WinUser.h 中声明的 GetMessage API,您也许会惊讶地发现它有 A 和 W 两种版本。

    3.3    SetLastError

    SetLastError 错误处理非常重要,但在编程时经常被遗忘。当您进行 P/Invoke 调用时,也会面临其他的挑战 — 处理托管代码中 Windows API 错误处理和异常之间的区别。我可以给您一点建议。

    如果您正在使用 P/Invoke 调用 Windows API 函数,而对于该函数,您使用 GetLastError 来查找扩展的错误信息,则应该在外部方法的 DllImportAttribute 中将 SetLastError 属性设置为 true。这适用于大多数外部方法。

    这会导致 CLR 在每次调用外部方法之后缓存由 API 函数设置的错误。然后,在包装方法中,可以通过调用类库的 System.Runtime.InteropServices.Marshal 类型中定义的 Marshal.GetLastWin32Error 方法来获取缓存的错误值。我的建议是检查这些期望来自 API 函数的错误值,并为这些值引发一个可感知的异常。对于其他所有失败情况(包括根本就没意料到的失败情况),则引发在 System.ComponentModel 命名空间中定义的 Win32Exception,并将 Marshal.GetLastWin32Error 返回的值传递给它。

    3.4    CallingConvention

    CallingConvention.Cdecl : 调用方清理堆栈。它使您能够调用具有 varargs 的函数。

    CallingConvention.StdCall : 被调用方清理堆栈。它是从托管代码调用非托管函数的默认约定。

    CallingConvention 字段的默认值为 Winapi,而后者又默认为 StdCall 约定。

    可能是最不重要的一个 DllImportAttribute 属性是 CallingConvention。通过此属性,可以给 CLR 指示应该将哪种函数调用约定用于堆栈中的参数。CallingConvention.Winapi 的默认值是最好的选择,它在大多数情况下都可行。然而,如果该调用不起作用,则可以检查 Platform SDK 中的声明头文件,看看您调用的 API 函数是否是一个不符合调用约定标准的异常 API。

    通常,本机函数(例如 Windows API 函数或 C- 运行时 DLL 函数)的调用约定描述了如何将参数推入线程堆栈或从线程堆栈中清除。大多数 Windows API 函数都是首先将函数的最后一个参数推入堆栈,然后由被调用的函数负责清理该堆栈。相反,许多 C-运行时 DLL 函数都被定义为按照方法参数在方法签名中出现的顺序将其推入堆栈,将堆栈清理工作交给调用者。

    幸运的是,要让 P/Invoke 调用工作只需要让外围设备理解调用约定即可。通常,从默认值 CallingConvention.Winapi 开始是最好的选择。然后,在 C 运行时 DLL 函数和少数函数中,可能需要将约定更改为 CallingConvention.Cdecl。

    3.5    ExactSpelling

    ExactSpelling 指示是否应修改非托管 DLL 中的入口点的名称,以与 CharSet 字段中指定的 CharSet 值相对应。如果为 true,则当 DllImportAttribute.CharSet 字段设置为 CharSet 的 Ansi 值时,向方法名称中追加字母 A,当 DllImportAttribute.CharSet 字段设置为 CharSet 的 Unicode 值时,向方法的名称中追加字母 W。此字段的默认值是 false。

    3.6    PreserveSig

        PreserveSig指示托管方法签名不应转换成返回 HRESULT、并且可能有一个对应于返回值的附加 [out, retval] 参数的非托管签名。

    4      参数类型

        数值型直接用对应的就可。(DWORD -> int , WORD -> Int16)

        API中字符串指针类型 -> .net中string

        API中句柄 (dWord) -> .net中IntPtr

        API中结构 -> .net中结构或者类。注意这种情况下,要先用StructLayout特性限定声明结构或类

    5      Win32 API 中几个常用的 DLL6      wince 中的DLL

    DLL:内容说明
    coredll.dll
    展开全文
  • 此文章对开放数据接口 API 进行了功能介绍、使用场景介绍以及调用方法的说明,供用户在使用数据接口时参考之用。 在给大家分享的一系列软件开发视频课程中,以及在我们的社区微信群聊天中,都积极地鼓励大家开发自己...

    此文章对开放数据接口 API 进行了功能介绍、使用场景介绍以及调用方法的说明,供用户在使用数据接口时参考之用。

    在给大家分享的一系列软件开发视频课程中,以及在我们的社区微信群聊天中,都积极地鼓励大家开发自己的项目,包括微信小程序或者 App 等。

    但是很多同学遇到的问题是,当开发自己的网站、微信小程序、App 时,没有数据支撑,及时已经掌握了如何请求后台的数据接口以及进行列表的绑定等,但是「巧妇难为无米之炊」,没有数据源,就没有丰满的产品展现。

    还有部分同学需要一个后台数据接口 API 进行网络请求以及列表加载的学习实战,但是自己没有后台开发的经验以及能力,还会遇到不会搭建服务器、不会开发后台 API,同时也没有域名、在国内未备案、数据接口不支持 HTTPS 等问题。

    1. 咕咕数据接口 API 简介

    截图

    咕咕数据开放接口 API 地址:https://www.gugudata.com/

    你可以通过获得的接口 API 直接获得:

    • 快速地让你的项目接入海量数据
    • 各种依托服务器的后台功能都帮你搞定
    • 无需搭建后台服务器以及进行后台开发
    • 让你的小程序、APP 等开发快速接入数据存储功能

    各类数据接口 API 最近持续上线中。

    截图

    咕咕数据 API 接口特点:

    • 依托十年海量数据清洗、抽取以及整合
    • 可以接入各种开发语言,RESTful 架构设计
    • 全接口支持 HTTPS(TLS v1.0 / v1.1 / v1.2 / v1.3)
    • 全面兼容 Apple ATS
    • 全国多节点 CDN 部署
    • 多台服务器构建 API 接口负载均衡

    截图

    2. 接口文档与测试接口

    在对应的接口文档中,你可以看到详细的数据请求接口以及不同语言下的请求方法示例代码。
    如在「软件开发技术博文头条」接口 API 文档中,你可以直观地查看对应开发语言的调用方法。

    截图

    在你购买接口前,你可以通过测试接口查看接口返回数据的格式。
    接口测试: https://api.gugudata.com/news/techblogs/demo

    目前接口 50% 折扣促销中,社区中更有获取免费无限制接口调用的机会,全力助力你以最快的速度开发出你自己的项目,为你的简历增加最有实力的证明,或用于你自己的实际项目中。


    加入社群,与 1000 多位朋友共同成长

    DevOpen.Club Pro 高质量软件开发分享讨论群,汇聚了近 1000 多名各行各业的软件开发人员,是供朋友们分享高质量资源、讨论软件开发问题解决方案、寻求孵化项目合作伙伴的干货社区。

    任何技术都不是限制,我们最终目的是将技术转化成收入,实现财务自由。

    社群中正在更新的原创视频教程 & 孵化项目进度

    1. 编程大世界:软件开发基础知识通解,带你进入软件开发的大世界;
    2. 80 节实战课精通 React Native 开发:我出版的书籍《React Native 精解与实战》配套视频教程;
    3. 微信小程序开发视频教程:最实战的小程序开发视频教程,重新规划课程内容增加至 60 小节;
    4. 50 个 Chrome Developer Tools 必备技巧:前端开发人员必备技能点;
    5. 我们的微信群中孵化出来的一个团队,在做一个服务于伦敦的小程序项目。

    DevOpenClub Pro 社群指南

    1. 每日分享高质量的技术开发头条信息与资源;
    2. 遇到任何技术问题都可以进行快速提问、讨论交流;
    3. 永久获取每年原创的开发视频教程第一手资源更新;
    4. 获取其他高质量软件开发行业新闻、技术文章、教学视频分享;
    5. 群中认识更多的朋友以及分享合作开发项目的机会;
    6. 认识更多的行业朋友,或者交流自己的创业小项目;
    7. 交流与分享技术面试心得;
    8. 高质量、有价值的社区永远都不会是你所在的 QQ 群或微信群。

    DevOpenClub 知识星球

    展开全文
  • 在上一篇文章《调用网络API》中,我只讲述了如何直观的使用API接口以及调用API后返回的结果,本文则从程序实现的角度来实现API的调用,当然本程序的实现也是借助于扇贝网的API接口文档... 由API文档可知,要想调用其...
  • 调用微博API获取微博内容

    万次阅读 2017-11-17 16:42:58
    调用微博API获取微博内容在采集微博数据的时候,可以利用微博的API来进行调用。在调用微博APi的时候需要做两项工作,第一步是创建应用,第二步是安装微博SDK.一.创建应用 创建应用的目的是获取app-key和app-secret...
  • VB调用API的学习

    千次阅读 2007-05-06 18:22:00
    编写VB程序时,经常遇到的问题就是VB给我们准备的东西我们会用,控件组装就是一个程序,然而一旦想要实现VB没有直接提供的功能,就会不知所措。... 然而,学会一种东西是需要付出相当的努力的,API也一样,它可以给我
  • 好玩的API调用之---IP地址查询API

    千次阅读 2017-04-25 20:32:32
    好玩的API调用之—IP地址查询API 更多技术文章请访问我的个人博客http://www.rainweb.site平时写程序经常需要用到一些服务,像翻译,天气预报,星座什么的,我一般都是用Python写个爬虫去提供这些服务的网站数据...
  • 一次调用Gitee API 经历

    千次阅读 2018-06-29 17:15:43
    最近项目中有需要调用Giee API的需求,于是便了解研究了一下.1. OAuth2.0认证与授权 OAuth是一种开放授权协议。就像很多应用可以使用qq微信登陆一样,你并没有吧你的密码告诉第三方应用,也不可能告诉,但是当你用...
  • 调用天气api实现查询各城市天气

    千次阅读 2017-07-28 00:03:34
    调用api数据为haoservice.com网站提供的天气数据。 如下图,我们需要向其传递的参数有两个,一个为我们自己申请的key,一个为城市名字。 首先定义两个变量,一个存储key,一个存储接口地址。 public static ...
  • 一些开放的可以调用API接口

    千次阅读 2019-05-11 09:50:21
    api接口应该会越来越火,上个全的,楼主自己找找吧,这个东西日新月异api提供商——聚合、showapi、极速数据、haoservice、阿凡达、数据堂、apix、通联api接口汇总的平台——apistore、京东万象、阿里云、数据宝、数...
  • 【转载】使用微博API接口获取数据

    千次阅读 2020-12-15 11:21:51
    许多网站会通过API接口向第三方开放网站的部分数据。新浪微博也不例外。你可以查看微博API列表。 本文将对如何使用微博API做初步性的介绍,以获得基本概念和认识,方便之后的深入理解。 step1: 使用python调用微博...
  • c# 调用windows API

    2013-01-17 23:22:17
    这个网站主要是一个wiki,允许开发者发现,编辑,增加PInvoke的签名,用户自定义类型和从托管代码(指c#和VB.net开发语言)访问win32和其他非托管api的信息。 世界各地的.Net开发者可以很容易分享自己有价值的东西...
  • 通过调用新浪微博API获取数据时数组采集中一个很好的方法,为了获取较新的资讯数据内容,本文主要介绍新浪微博OAuth2.0授权机制、微博开发者平台的使用、python调用微博API等内容,文末提供测试版python调用微博API...
  • Java调用Restful API接口几种方式

    千次阅读 2018-01-16 22:18:40
    摘要:最近有一个需求,为客户提供一些Restful API 接口,QA使用postman进行测试,但是postman的测试接口与java调用的相似但并不相同,于是想自己写一个程序去测试Restful API接口,由于使用的是HTTPS,所以还要考虑...
  • 摘要:最近有一个需求,为客户提供一些Restful API 接口,QA使用postman进行测试,但是postman的测试接口与java调用的相似但并不相同,于是想自己写一个程序去测试Restful API接口,由于使用的是HTTPS,所以还要考虑...
  • 演示淘宝API调用接口

    2020-05-22 15:17:25
    好了,接下来我讲调用API中最关键的一步了,就是准备好所要调用API的请求URL我以在沙箱环境中调用taobao.user.get接口来举例taobao.user.get这个接口的作用是得到用户的信息,这个API的官方文档的地址是:...
  • 1. 使用Web API ...依赖于外部数据源的大多数应用程序都依赖于API调用,如集成社交媒体网站的应用程序。 1.1 Git和GitHub 基于来自GitHub的信息,我们将使用GibHub的API来请求有关网站中Python项目的信息,...
  • (译)如何使用Dynatrace真实用户监控(RUM)检测有影响的第三方API调用 作者:Andreas Grabner 对软件工程来说,第三方API已经变得和我们自己的代码或执行代码的运行时一样重要了。第三方API调用可能会影响到你的...
  • python中API调用(最基本)

    万次阅读 多人点赞 2018-12-09 18:00:09
    必须在请求发送后才能调用得到服务器返回的内容,返回的是一个 HTTPResponse 实例。 HTTPConnection.close() 关闭链接。 HTTPResponse 对象方法 HTTPResponse 实例包含了从服务器返回的 HTTP 回应。 它...
  • 本人长期出售超大量微博数据、旅游网站评论数据,并提供各种指定数据爬取服务,Message to YuboonaZhang@Yahoo.com。同时欢迎加入社交媒体数据交流群:99918768 利用新浪API实现数据的抓取(2018.4.16 更新) ...
  • 中国天气网(http://www.weather.com.cn)向用户提供国内各城市天气信息,并提供API供程序获取所需的天气数据,返回数据格式为JSON,API网址类似http://www.weather.com.cn/data/cityinfo/101020100.html,其中,...
  • Python使用Web API数据可视化

    千次阅读 2018-03-19 19:42:53
    Web应用编程接口 (API)自动请求网站的特定信息而不是整个网页,再对这些信息进行可视化。...这种请求称为API调用。请求的数据将以易于处理的格式(如JSON或CSV)返回。依赖于外部数据源的大多数应用程序都...
  • 首先需要在百度翻译API官网进行注册,需要有一个百度账户,这里面注册时候选择个人用户就可以了,这样就不用填写服务器IP地址了,注册内容较为简单,略过。 注册好之后,进入个人服务中心, 申请信息的下面就是...
  • 精确测量Direct3D API调用(一)

    千次阅读 2013-10-03 10:30:19
    一旦你有一个实用的Mircosoft Direct3D应用,并且你想提高它的性能,你通常会使用一个现成的测量工具或者一些定制的测量技术来度量一个或更多的API调用所花费的时间。 如果你成功做到了这一点,但是从不同的渲染...
  • OKCoin接口是提供服务的基础,开发者在OKCoin网站创建账号后,可以根据自身需求建立不同权限的API,并利用API进行自动交易或者提现。 通过API可以快速实现以下功能: 获取市场最新行情 获取买卖深度信息 查询...
  • 1.需求描述对于数据挖掘工程师来说,有时候需要抓取地理位置信息,比如统计房子周边基础设施信息,比如医院、公交车站、写字楼、地铁站、商场等,一般的爬虫可以采用python脚本爬取,有很多成型的框架如scrapy,但是...
  • 使用python调用新浪微博API的小经历

    千次阅读 2014-03-18 16:52:45
    刚开始走了很多弯路,Python SDK的介绍页面内容有点少只是简单的介绍了如何使用这个SDK用新浪微博接入,至于如何获取用户的信息没有提到。Python SDK是第三方的基于2.7的,我见过有人改写的基于3.2的,链接忘存了。 ...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 100,402
精华内容 40,160
关键字:

网站调用api获得用户数据