admin 发表于 2021-2-24 17:26:43

API接口请求示例:C、C#、PHP、Curl、JAVA、Python、R、URL-GET等


接口调用实例
用户登录(初始化)
提交地址:
http://demo.xinxiuvip.com/plugin.php?id=xinxiu_network:login&key=123456&action=login_user&username=demo&password=demo

提交参数

参数名类型必填说明限制示例
key是传输密钥(后台设置)
123456
action是接口方法
login_user
username是用户名,根据$isuid值对应输入(用户名、用户ID、用户邮箱)
demo
password是密码
demo
questionid否问题id(1-7)提示问题顺序为1=母亲叫什么名字,后面2、3、4、5以此类推


answer否问题答案


isuid否用户名登录类型(1->使用用户ID登录,2->使用用户E-mail登录;0->(默认值) 使用用户名登录)





URL-GET提交实例
用户登录(初始化)
##直接在网页地址栏输入即可
http://demo.xinxiuvip.com/plugin.php?id=xinxiu_network:login&key=123456&action=login_user&username=demo&password=demo


Curl提交实例
用户登录(初始化)
#Curl
curl "http://demo.xinxiuvip.com/plugin.php?id=xinxiu_network:login&key=123456&action=login_user&username=demo&password=demo"


PHP提交实例
用户登录(初始化)

//接口请求Key,可以在后台设置
$key = "123456";
//根据接口文档设置参数信息。
$url = "http://demo.xinxiuvip.com/plugin.php?id=xinxiu_network:login";
$params = [
    "action" => "login_user",
    "key" => $key,
    "username" => "demo",
    "password" => "demo",
];
$paramstring = http_build_query($params);
$content = juheHttpRequest($url, $paramstring, 1);
$result = json_decode($content, true);
if ($result['code'] == 200) {
      exit($content);
    }elseif($result['code'] == 400){
      exit($content);
    }else{
      exit("请求失败");
}
/**
* 请求接口返回内容
* @param string $url [请求的URL地址]
* @param string $params [请求的参数]
* @param int $ipost [是否采用POST形式]
* @returnstring
*/
function juheHttpRequest($url, $params = false, $ispost = 0)
{
    $httpInfo = array();
    $ch = curl_init();
    curl_setopt($ch, CURLOPT_HTTP_VERSION, CURL_HTTP_VERSION_1_1);
    curl_setopt($ch, CURLOPT_USERAGENT, 'XinxiuData');
    curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, 3);
    curl_setopt($ch, CURLOPT_TIMEOUT, 5);
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
    curl_setopt($ch, CURLOPT_FOLLOWLOCATION, true);
    if ($ispost) {
      curl_setopt($ch, CURLOPT_POST, true);
      curl_setopt($ch, CURLOPT_POSTFIELDS, $params);
      curl_setopt($ch, CURLOPT_URL, $url);
    } else {
      if ($params) {
            curl_setopt($ch, CURLOPT_URL, $url . '?' . $params);
      } else {
            curl_setopt($ch, CURLOPT_URL, $url);
      }
    }
    $response = curl_exec($ch);
    if ($response === FALSE) {
      //echo "cURL Error: " . curl_error($ch);
      return false;
    }
    $httpCode = curl_getinfo($ch, CURLINFO_HTTP_CODE);
    $httpInfo = array_merge($httpInfo, curl_getinfo($ch));
    curl_close($ch);
    return $response;
}


JAVA提交实例
用户登录(初始化)
#JAVA
import java.net.*;
import java.io.*;
public class test{
    public static void main(String args[]) throws Exception {
      URL u=new URL("http://demo.xinxiuvip.com/plugin.php?id=xinxiu_network:login&key=123456
&action=login_user&username=demo&password=demo");
      InputStream in=u.openStream();
      ByteArrayOutputStream out=new ByteArrayOutputStream();
      try {
            byte buf[]=new byte;
            int read = 0;
            while ((read = in.read(buf)) > 0) {
                out.write(buf, 0, read);
            }
      }finally {
            if (in != null) {
                in.close();
            }
      }
      byte b[]=out.toByteArray( );
      System.out.println(new String(b,"utf-8"));
    }
}


python提交实例
用户登录(初始化)
#python
import json,urllib
from urllib import urlencode
url = 'http://demo.xinxiuvip.com/plugin.php?id=xinxiu_network:login'
params = {
'action' : 'login_user',
'key' : '123456',
'username' : 'demo',
'password' : 'demo',
}

params = urlencode(params)

f = urllib.urlopen('%s?%s' % (url, params))
api_call = f.read()
#print content
a_result = json.loads(api_call)

if a_result['code'] == '200':
print api_call;
elseif a_result['code'] == '400':
print api_call;
else:
print '请求失败';


GO提交实例
用户登录(初始化)
package main

import (
      "fmt"
      "io/ioutil"
      "log"
      "net/http"
)

func main() {
      client := &http.Client{}
      req, err := http.NewRequest("GET", "http://demo.xinxiuvip.com/plugin.php?id=xinxiu_network:login&key=123456&action=login_user&username=demo5&password=demo5", nil)
      if err != nil {
                log.Fatal(err)
      }
      req.Header.Set("Content-Type", "application/x-www-form-urlencoded")
      resp, err := client.Do(req)
      if err != nil {
                log.Fatal(err)
      }
      bodyText, err := ioutil.ReadAll(resp.Body)
      if err != nil {
                log.Fatal(err)
      }
      fmt.Printf("%s\n", bodyText)
}



Node提交实例
用户登录(初始化)
var request = require('request');

var headers = {
    'Content-Type': 'application/x-www-form-urlencoded'
};

var options = {
    url: 'http://demo.xinxiuvip.com/plugin.php?id=xinxiu_network:login&key=123456&action=login_user&username=demo5&password=demo5',
    headers: headers
};

function callback(error, response, body) {
    if (!error && response.statusCode == 200) {
      console.log(body);
    }
}

request(options, callback);



JavaScript提交实例
用户登录(初始化)
var myHeaders = new Headers();
myHeaders.append("User-Agent", "Apifox/1.0.0 (http://www.xinxiuvip.com/)");
myHeaders.append("Accept", "*/*");
myHeaders.append("Host", "demo35.xinxiuvip.com");
myHeaders.append("Connection", "keep-alive");
myHeaders.append("Cookie", "MIYB_2132_saltkey=eRSG43Kb; MIYB_2132_lastvisit=1706621745; MIYB_2132_sid=fl3PuU; MIYB_2132_lastact=1706625345%09plugin.php%09; MIYB_2132_microtime=1706625345.6864");

var requestOptions = {
   method: 'GET',
   headers: myHeaders,
   redirect: 'follow'
};

fetch("http://demo35.xinxiuvip.com/plugin.php?id=xinxiuvip_network:login&key=123456&action=login_user&username=demo&password=demo", requestOptions)
   .then(response => response.text())
   .then(result => console.log(result))
   .catch(error => console.log('error', error));



Swift提交实例
用户登录(初始化)
import Foundation
#if canImport(FoundationNetworking)
import FoundationNetworking
#endif

var semaphore = DispatchSemaphore (value: 0)

var request = URLRequest(url: URL(string: "http://demo35.xinxiuvip.com/plugin.php?id=xinxiuvip_network:login&key=123456&action=login_user&username=demo&password=demo")!,timeoutInterval: Double.infinity)
request.addValue("Apifox/1.0.0 (http://www.xinxiuvip.com/)", forHTTPHeaderField: "User-Agent")
request.addValue("*/*", forHTTPHeaderField: "Accept")
request.addValue("demo35.xinxiuvip.com", forHTTPHeaderField: "Host")
request.addValue("keep-alive", forHTTPHeaderField: "Connection")
request.addValue("MIYB_2132_saltkey=eRSG43Kb; MIYB_2132_lastvisit=1706621745; MIYB_2132_sid=fl3PuU; MIYB_2132_lastact=1706625345%09plugin.php%09; MIYB_2132_microtime=1706625345.6864", forHTTPHeaderField: "Cookie")

request.httpMethod = "GET"

let task = URLSession.shared.dataTask(with: request) { data, response, error in
   guard let data = data else {
      print(String(describing: error))
      semaphore.signal()
      return
   }
   print(String(data: data, encoding: .utf8)!)
   semaphore.signal()
}

task.resume()
semaphore.wait()



C提交实例
用户登录(初始化)
CURL *curl;
CURLcode res;
curl = curl_easy_init();
if(curl) {
   curl_easy_setopt(curl, CURLOPT_CUSTOMREQUEST, "GET");
   curl_easy_setopt(curl, CURLOPT_URL, "http://demo35.xinxiuvip.com/plugin.php?id=xinxiuvip_network:login&key=123456&action=login_user&username=demo&password=demo");
   curl_easy_setopt(curl, CURLOPT_FOLLOWLOCATION, 1L);
   curl_easy_setopt(curl, CURLOPT_DEFAULT_PROTOCOL, "https");
   struct curl_slist *headers = NULL;
   headers = curl_slist_append(headers, "User-Agent: Apifox/1.0.0 (http://www.xinxiuvip.com/)");
   headers = curl_slist_append(headers, "Accept: */*");
   headers = curl_slist_append(headers, "Host: demo35.xinxiuvip.com");
   headers = curl_slist_append(headers, "Connection: keep-alive");
   headers = curl_slist_append(headers, "Cookie: MIYB_2132_saltkey=eRSG43Kb; MIYB_2132_lastvisit=1706621745; MIYB_2132_sid=fl3PuU; MIYB_2132_lastact=1706625345%09plugin.php%09; MIYB_2132_microtime=1706625345.6864");
   curl_easy_setopt(curl, CURLOPT_HTTPHEADER, headers);
   res = curl_easy_perform(curl);
}
curl_easy_cleanup(curl);



C#提交实例
用户登录(初始化)
var client = new RestClient("http://demo35.xinxiuvip.com/plugin.php?id=xinxiuvip_network:login&key=123456&action=login_user&username=demo&password=demo");
client.Timeout = -1;
var request = new RestRequest(Method.GET);
client.UserAgent = "Apifox/1.0.0 (http://www.xinxiuvip.com/)";
request.AddHeader("Accept", "*/*");
request.AddHeader("Host", "demo35.xinxiuvip.com");
request.AddHeader("Connection", "keep-alive");
request.AddHeader("Cookie", "MIYB_2132_saltkey=eRSG43Kb; MIYB_2132_lastvisit=1706621745; MIYB_2132_sid=fl3PuU; MIYB_2132_lastact=1706625345%09plugin.php%09; MIYB_2132_microtime=1706625345.6864");
IRestResponse response = client.Execute(request);
Console.WriteLine(response.Content);



Ruby提交实例
用户登录(初始化)
require "uri"
require "net/http"

url = URI("http://demo35.xinxiuvip.com/plugin.php?id=xinxiuvip_network:login&key=123456&action=login_user&username=demo&password=demo")

http = Net::HTTP.new(url.host, url.port);
request = Net::HTTP::Get.new(url)
request["User-Agent"] = "Apifox/1.0.0 (http://www.xinxiuvip.com/)"
request["Accept"] = "*/*"
request["Host"] = "demo35.xinxiuvip.com"
request["Connection"] = "keep-alive"
request["Cookie"] = "MIYB_2132_saltkey=eRSG43Kb; MIYB_2132_lastvisit=1706621745; MIYB_2132_sid=fl3PuU; MIYB_2132_lastact=1706625345%09plugin.php%09; MIYB_2132_microtime=1706625345.6864"

response = http.request(request)
puts response.read_body



OCaml提交实例
用户登录(初始化)
open Lwt
open Cohttp
open Cohttp_lwt_unix

let reqBody =
   let uri = Uri.of_string "http://demo35.xinxiuvip.com/plugin.php?id=xinxiuvip_network:login&key=123456&action=login_user&username=demo&password=demo" in
   let headers = Header.init ()
      |> fun h -> Header.add h "User-Agent" "Apifox/1.0.0 (http://www.xinxiuvip.com/)"
      |> fun h -> Header.add h "Accept" "*/*"
      |> fun h -> Header.add h "Host" "demo35.xinxiuvip.com"
      |> fun h -> Header.add h "Connection" "keep-alive"
      |> fun h -> Header.add h "Cookie" "MIYB_2132_saltkey=eRSG43Kb; MIYB_2132_lastvisit=1706621745; MIYB_2132_sid=fl3PuU; MIYB_2132_lastact=1706625345%09plugin.php%09; MIYB_2132_microtime=1706625345.6864"
   in
   Client.call ~headers `GET uri >>= fun (_resp, body) ->
   body |> Cohttp_lwt.Body.to_string >|= fun body -> body

let () =
   let respBody = Lwt_main.run reqBody in
   print_endline (respBody)



Dart提交实例
用户登录(初始化)
var headers = {
   'User-Agent': 'Apifox/1.0.0 (http://www.xinxiuvip.com/)',
   'Accept': '*/*',
   'Host': 'demo35.xinxiuvip.com',
   'Connection': 'keep-alive',
   'Cookie': 'MIYB_2132_saltkey=eRSG43Kb; MIYB_2132_lastvisit=1706621745; MIYB_2132_sid=fl3PuU; MIYB_2132_lastact=1706625345%09plugin.php%09; MIYB_2132_microtime=1706625345.6864'
};
var request = http.Request('GET', Uri.parse('http://demo35.xinxiuvip.com/plugin.php?id=xinxiuvip_network:login&key=123456&action=login_user&username=demo&password=demo'));

request.headers.addAll(headers);

http.StreamedResponse response = await request.send();

if (response.statusCode == 200) {
   print(await response.stream.bytesToString());
}
else {
   print(response.reasonPhrase);
}



R 提交实例
用户登录(初始化)
library(httr)

headers = c(
   'User-Agent' = 'Apifox/1.0.0 (http://www.xinxiuvip.com/)',
   'Accept' = '*/*',
   'Host' = 'demo35.xinxiuvip.com',
   'Connection' = 'keep-alive',
   'Cookie' = 'MIYB_2132_saltkey=eRSG43Kb; MIYB_2132_lastvisit=1706621745; MIYB_2132_sid=fl3PuU; MIYB_2132_lastact=1706625345%09plugin.php%09; MIYB_2132_microtime=1706625345.6864'
)

res <- VERB("GET", url = "http://demo35.xinxiuvip.com/plugin.php?id=xinxiuvip_network:login&key=123456&action=login_user&username=demo&password=demo", add_headers(headers))

cat(content(res, 'text'))

页: [1]
查看完整版本: API接口请求示例:C、C#、PHP、Curl、JAVA、Python、R、URL-GET等