ios下载app

产品简介

在ios设备中,直接下载app

使用说明

  1. 在用户后台申请接口

  2. 开通后,在用户后台菜单栏中,找到《微信内下载app》菜单,点击《生成短网址》子菜单,填入需要下载的apk地址,生成短网址

    在微信中直接将短网址发送出去即可

JSON返回示例

           

参数不能为空:
{
    "code": 560,
    "msg": "url参数不能为空",
    "data": 
}

参数不能为空:
{
    "code": 570,
    "msg": "检查输入id",
    "data": 
}


错误码详情

错误码说明
500
参数错误
511
appkey不合法
513
套餐余量不足
514请求频繁
520
url为空


c#

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Net;
using System.IO;
using Xfrog.Net;
using System.Diagnostics;
using System.Web;


namespace ConsoleAPI{
    class Program{
        static void Main(string[] args){
            string url = "http://api.monkeyapi.com";

            var parameters = new Dictionary<string, string>();

            parameters.Add("appkey" , "appkey"); //您申请的APPKEY
            parameters.Add("path" , "/home"); //需要切换的路由(非必传)

            string result = sendPost(url, parameters, "post");

            // 代码中JsonObject类下载地址:http://download.csdn.net/download/gcm3206021155665/7458439
            JsonObject newObj = new JsonObject(result);
            String errorCode = newObj["error_code"].Value;

            if (errorCode == "0")
            {
                Debug.WriteLine("成功");
                Debug.WriteLine(newObj);
            }
            else
            {
                //Debug.WriteLine("请求异常");
                Debug.WriteLine(newObj["error_code"].Value+":"+newObj["reason"].Value);
            }
        }

        /// <summary>
        /// Http (GET/POST)
        /// </summary>
        /// <param name="url">请求URL</param>
        /// <param name="parameters">请求参数</param>
        /// <param name="method">请求方法</param>
        /// <returns>响应内容</returns>
        static string sendPost(string url, IDictionary<string, string> parameters, string method){
            if (method.ToLower() == "post")
                {
                    HttpWebRequest req = null;
                    HttpWebResponse rsp = null;
                    System.IO.Stream reqStream = null;
                try
                {
                    req = (HttpWebRequest)WebRequest.Create(url);
                    req.Method = method;
                    req.KeepAlive = false;
                    req.ProtocolVersion = HttpVersion.Version10;
                    req.Timeout = 60000;
                    req.ContentType = "application/x-www-form-urlencoded;charset=utf-8";
                    byte[] postData = Encoding.UTF8.GetBytes(BuildQuery(parameters, "utf8"));
                    reqStream = req.GetRequestStream();
                    reqStream.Write(postData, 0, postData.Length);
                    rsp = (HttpWebResponse)req.GetResponse();
                    Encoding encoding = Encoding.GetEncoding(rsp.CharacterSet);
                    return GetResponseAsString(rsp, encoding);
                }
                    catch (Exception ex)
                {
                    return ex.Message;
                }
                finally
                {
                    if (reqStream != null) reqStream.Close();
                    if (rsp != null) rsp.Close();
                }
            }
            else
            {
                //创建请求
                HttpWebRequest request = (HttpWebRequest)WebRequest.Create(url + "?" + BuildQuery(parameters, "utf8"));

                //GET请求
                request.Method = "GET";
                request.ReadWriteTimeout = 5000;
                request.ContentType = "text/html;charset=UTF-8";
                HttpWebResponse response = (HttpWebResponse)request.GetResponse();
                Stream myResponseStream = response.GetResponseStream();
                StreamReader myStreamReader = new StreamReader(myResponseStream, Encoding.GetEncoding("utf-8"));

                //返回内容
                string retString = myStreamReader.ReadToEnd();
                return retString;
            }
        }

        /// <summary>
        /// 组装普通文本请求参数。
        /// </summary>
        /// <param name="parameters">Key-Value形式请求参数字典</param>
        /// <returns>URL编码后的请求数据</returns>
        static string BuildQuery(IDictionary<string, string> parameters, string encode){
            StringBuilder postData = new StringBuilder();
            bool hasParam = false;
            IEnumerator<KeyValuePair<string, string>> dem = parameters.GetEnumerator();
            while (dem.MoveNext())
            {
                string name = dem.Current.Key;
                string value = dem.Current.Value;
                // 忽略参数名或参数值为空的参数
                if (!string.IsNullOrEmpty(name))//&& !string.IsNullOrEmpty(value)
                {
                    if (hasParam)
                    {
                        postData.Append("&");
                    }
                    postData.Append(name);
                    postData.Append("=");
                    if (encode == "gb2312")
                    {
                        postData.Append(HttpUtility.UrlEncode(value, Encoding.GetEncoding("gb2312")));
                    }
                        else if (encode == "utf8")
                    {
                        postData.Append(HttpUtility.UrlEncode(value, Encoding.UTF8));
                    }
                    else
                    {
                        postData.Append(value);
                    }
                    hasParam = true;
                }
            }
            return postData.ToString();
        }

        /// <summary>
        /// 把响应流转换为文本。
        /// </summary>
        /// <param name="rsp">响应流对象</param>
        /// <param name="encoding">编码方式</param>
        /// <returns>响应文本</returns>
        static string GetResponseAsString(HttpWebResponse rsp, Encoding encoding){
            System.IO.Stream stream = null;
            StreamReader reader = null;
            try
            {
                // 以字符流的方式读取HTTP响应
                stream = rsp.GetResponseStream();
                reader = new StreamReader(stream, encoding);
                return reader.ReadToEnd();
            }
            finally
            {
                // 释放资源
                if (reader != null) reader.Close();
                if (stream != null) stream.Close();
                if (rsp != null) rsp.Close();
            }
        }
    }
}

curl

curl -k -i -d "appkey=您申请的APPKEY&path=需要切换的路由(非必传)" http://api.monkeyapi.com

go

package main

import (
    "io/ioutil"
    "net/http"
    "net/url"
    "fmt"
    "encoding/json"
)

func main() {
    //请求地址
    juheURL := "http://api.monkeyapi.com"

    //初始化参数
    param := url.Values{}

    //配置请求参数,方法内部已处理urlencode问题,中文参数可以直接传参
    param.Set("appkey" , "appkey"); //您申请的APPKEY
    param.Set("path" , "/home"); //需要切换的路由(非必传)

    //发送请求
    data, err := Get(juheURL, param)
    if err != nil {
        fmt.Errorf("请求异常,错误信息:\r\n%v", err)
    } else {
        var netReturn map[string]interface{}
        json.Unmarshal(data, &netReturn)
        fmt.Println(netReturn)
    }

}

// get 网络请求
func Get(apiURL string, params url.Values) (rs []byte, err error) {
    var Url *url.URL
    Url, err = url.Parse(apiURL)
    if err != nil {
    fmt.Printf("解析url错误:\r\n%v", err)
    return nil, err
    }
    //如果参数中有中文参数,这个方法会进行URLEncode
    Url.RawQuery = params.Encode()
    resp, err := http.Get(Url.String())
    if err != nil {
        fmt.Println("err:", err)
        return nil, err
    }
    defer resp.Body.Close()
    return ioutil.ReadAll(resp.Body)
}

// post 网络请求 ,params 是url.Values类型
func Post(apiURL string, params url.Values) (rs []byte, err error) {
    resp, err := http.PostForm(apiURL, params)
    if err != nil {
        return nil, err
    }
    defer resp.Body.Close()
    return ioutil.ReadAll(resp.Body)
}

java

import java.io.BufferedReader;
import java.io.DataOutputStream;
import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.io.UnsupportedEncodingException;
import java.net.HttpURLConnection;
import java.net.URL;
import java.net.URLEncoder;
import java.util.HashMap;
import java.util.Map;

import net.sf.json.JSONObject;


public class Demo {
  public static final String DEF_CHATSET = "UTF-8";
  public static final int DEF_CONN_TIMEOUT = 30000;
  public static final int DEF_READ_TIMEOUT = 30000;
  public static String userAgent =  "Mozilla/5.0 (Windows NT 6.1) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/29.0.1547.66 Safari/537.36";

  public static void mobileQuery(){
      String result =null;
      String url ="http://api.monkeyapi.com";//请求接口地址
      Map params = new HashMap();//请求参数
        params.put("appkey" , "appkey");//您申请的APPKEY
        params.put("path" , "/home");//需要切换的路由(非必传)
      try {
          result = net(url, params, "GET");
          JSONObject object = JSONObject.fromObject(result);
          if(object.getInt("error_code")==0){
            System.out.println(object.get("result"));
          }else{
            System.out.println(object.get("error_code")+":"+object.get("reason"));
          }
      } catch (Exception e) {
        e.printStackTrace();
      }
  }

  public static void main(String[] args) {

  }

  /**
   *
   * @param  strUrl 请求地址
   * @param  params 请求参数
   * @param  method 请求方法
   * @return    网络请求字符串
   * @throws  Exception
   */
  public static String net(String strUrl, Map params,String method) throws Exception {
     HttpURLConnection conn = null;
     BufferedReader reader = null;
     String rs = null;
     try {
        StringBuffer sb = new StringBuffer();
        if(method==null || method.equals("GET")){
          strUrl = strUrl+"?"+urlencode(params);
        }
        URL url = new URL(strUrl);
        conn = (HttpURLConnection) url.openConnection();
        if(method==null || method.equals("GET")){
           conn.setRequestMethod("GET");
        }else{
           conn.setRequestMethod("POST");
           conn.setDoOutput(true);
        }
        conn.setRequestProperty("User-agent", userAgent);
        conn.setUseCaches(false);
        conn.setConnectTimeout(DEF_CONN_TIMEOUT);
        conn.setReadTimeout(DEF_READ_TIMEOUT);
        conn.setInstanceFollowRedirects(false);
        conn.connect();
        if (params!= null && method.equals("POST")) {
           try {
              DataOutputStream out = new DataOutputStream(conn.getOutputStream());
              out.writeBytes(urlencode(params));
           } catch (Exception e) {
              // TODO: handle exception
              e.printStackTrace();
           }
        }
       InputStream is = conn.getInputStream();
       reader = new BufferedReader(new InputStreamReader(is, DEF_CHATSET));
       String strRead = null;
       while ((strRead = reader.readLine()) != null) {
         sb.append(strRead);
       }
       rs = sb.toString();
     } catch (IOException e) {
       e.printStackTrace();
     } finally {
       if (reader != null) {
          reader.close();
       }
       if (conn != null) {
          conn.disconnect();
       }
     }
    return rs;
  }

  //将map型转为请求参数型
  public static String urlencode(Map<String,String> data) {
       StringBuilder sb = new StringBuilder();
       for (Map.Entry i : data.entrySet()) {
           try {
              sb.append(i.getKey()).append("=").append(URLEncoder.encode(i.getValue()+"","UTF-8")).append("&");
           } catch (UnsupportedEncodingException e) {
              e.printStackTrace();
           }
       }
       return sb.toString();
  }

}

node

//node request模块安装命令:npm install request
var request = require('request');
var querystring = require('querystring');

var queryData = querystring.stringify({
    "appkey": "appkey",  // 您申请的APPKEY
    "path": "/home",  // 需要切换的路由(非必传)
});

var queryUrl = 'http://api.monkeyapi.com?'+queryData;
request(queryUrl, function (error, response, body) {
    if (!error && response.statusCode == 200) {
        console.log(body) // 打印接口返回内容
        var jsonObj = JSON.parse(body); // 解析接口返回的JSON内容
        console.log(jsonObj)
    } else {
        console.log('请求异常');
    }
})

php

$url = "http://api.monkeyapi.com";
$params = array(
'appkey' =>'appkey',//您申请的APPKEY
'path' =>'/home',//需要切换的路由(非必传)
);

$paramstring = http_build_query($params);
$content = Curl($url, $paramstring);
$result = json_decode($content, true);
if($result) {
    var_dump($result);
}else {
    //请求异常
}

/**
    * 请求接口返回内容
    * @param    string $url [请求的URL地址]
    * @param    string $params [请求的参数]
    * @param    int $ipost [是否采用POST形式]
    * @return    string
*/
function Curl($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_CONNECTTIMEOUT, 60);
    curl_setopt($ch, CURLOPT_TIMEOUT, 60);
    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;
}

python

#!/usr/bin/python
# -*- coding: utf-8 -*-
import json, urllib
from urllib import urlencode

url = "http://api.monkeyapi.com"
params = {
"appkey": "appkey",  # 您申请的APPKEY
"path": "/home",  # 需要切换的路由(非必传)
}
params = urlencode(params)
f = urllib.urlopen(url, params)
content = f.read()
res = json.loads(content)
if res:
    print(res)
else:
    print("请求异常")

常见问题

Icon helper 服务

咨询
Close