C# U8调用OpenAPI 20180810

U8 OpenApi调用

调用OpenAPI的准备:
一.在用友开放平台(http://open.yonyouup.com/)注册账号。
根据提示完成注册
二.申请成为开发者。
注册的时候选择开发者!
三.下载OpenAPI客户端。
http://open.yonyouup.com/下载客户端
四.创建应用。
选择你需要调用的接口
选择你需要调用的接口
五.申请测试账号。
申请的测试账号有效期为两个月
这里写图片描述
六.U8开放平台配置应用需要调用的接口。
用测试账号登录
用测试账号登录
七.配置OpenAPI客户端。
这里写图片描述

完成准备后就可以开始项目的搭建了。

入库按钮
///
/// 入库按钮
///
///

    private void simpleButton1_Click(object sender, EventArgs e)
    {
        //string apiID = "0121503694";
        string url = "https://api.yonyouup.com/api/productin/add?";
        //fromAccount = this.fromaccountT.Text;
        //toAccount = this.toaccountT.Text;
        url += "from_account=" + fromAccount + "&to_account=" + toAccount + "&app_key=" + appKey
            + "&token=" + this.memoEdit1.Text.Trim() + "&tradeid=" + this.memoEdit2.Text.Trim();
        string postStr = @"{
                            ""productin"":{
                                ""warehousecode"":""01"",
                                ""date"":""2018-08-07"",
                                ""receivecode"":""2"",
                                ""departmentcode"":""1"",
                                ""maker"":""demo"",
                                ""entry"":[
                                    {
                                        ""inventorycode"":""2"",
                                        ""quantity"":""2"",
                                    }
                                ]
                            }
                        }";
        string returnMes = HttpPost(url, postStr);
        //LogFile.WriteLog("物理内存占用:" + Process.GetCurrentProcess().WorkingSet64 / 1024.0 / 1024.0);
        JObject jo = JObject.Parse(returnMes);
        if (jo.Property("errcode") == null)
        {
            string a = jo["url"].ToString();
            getPostResult(jo["url"].ToString());
            MessageBox.Show("入库成功");
        }
        else if (jo.Property("errcode").Value.ToString() != "0")
        {
            MessageBox.Show(jo["errmsg"].ToString());
            //this.depT.Text = returnMes;
            return;
        }
    }

Post请求
///
/// Post请求
///

    CookieContainer cookie = new CookieContainer();
    private string HttpPost(string Url, string postDataStr)
    {
        ServicePointManager.ServerCertificateValidationCallback = new          System.Net.Security.RemoteCertificateValidationCallback(CheckValidationResult);
        byte[] data = Encoding.UTF8.GetBytes(postDataStr);
        Uri uRI = new Uri(Url);
        HttpWebRequest req = WebRequest.Create(uRI) as HttpWebRequest;
        req.Method = "POST";
        req.KeepAlive = true;
        req.ContentType = "application/json";
        req.ContentLength = data.Length;
        req.AllowAutoRedirect = true;
        Stream outStream = req.GetRequestStream();
        outStream.Write(data, 0, data.Length);
        outStream.Close();
        HttpWebResponse res = req.GetResponse() as HttpWebResponse;
        Stream inStream = res.GetResponseStream();
        StreamReader sr = new StreamReader(inStream, Encoding.UTF8);
        string htmlResult = sr.ReadToEnd();
        return htmlResult;
    }
    /// <summary>
    /// 取最好的post结果
    /// </summary>
    /// <param name="url"></param>

    private string getPostResult(string url)
    {
        string returnMes = HttpGet(url);
        //this.depT.Text = returnMes;
        JObject jo = JObject.Parse(returnMes);
        //LogFile.WriteLog("物理内存占用:" + Process.GetCurrentProcess().WorkingSet64 / 1024.0 / 1024.0);
        if (jo.Property("errcode") == null)
        {
            getPostResult(jo["url"].ToString());
        }
        else if (jo.Property("errcode").Value.ToString() != "0")
        {
            MessageBox.Show(jo["errmsg"].ToString());
        }
        return returnMes;
    }

Get请求
///
/// Get请求
///
///
///

    public string HttpGet(string Url)
    {
        ServicePointManager.ServerCertificateValidationCallback = new System.Net.Security.RemoteCertificateValidationCallback(CheckValidationResult);
        HttpWebRequest request = (HttpWebRequest)WebRequest.Create(Url);
        request.Method = "GET";
        request.ContentType = "text/html;charset=UTF-8";
        ServicePointManager.ServerCertificateValidationCallback = new System.Net.Security.RemoteCertificateValidationCallback(CheckValidationResult);
        HttpWebResponse response = (HttpWebResponse)request.GetResponse();
        Stream myResponseStream = response.GetResponseStream();
        StreamReader myStreamReader = new StreamReader(myResponseStream, Encoding.GetEncoding("utf-8"));
        string retString = myStreamReader.ReadToEnd();
        myStreamReader.Close();
        myResponseStream.Close();
        return retString;
    }

    /// 验证服务器证书回调自动验证  
    /// </summary>
    /// <param name="sender"></param>
    /// <param name="certificate"></param>
    /// <param name="chain"></param>
    /// <param name="errors"></param>
    /// <returns></returns>
    public bool CheckValidationResult(object sender, X509Certificate certificate, X509Chain chain, SslPolicyErrors errors)
    {   // 总是接受    
        return true;
    }

获取token
///
/// 获取token
///

    public void GetToken()
    {
        string url = "https://api.yonyouup.com/system/token?";
        fromAccount = this.fromaccountT.Text;
        appKey = this.appkeyT.Text;
        appSecret = this.appsecretT.Text;
        url += "from_account=" + fromAccount + "&app_key=" + appKey + "&app_secret=" + appSecret;
        returnToken = HttpGet(url);
        this.tokenT.Text = returnToken;
        JObject jo = JObject.Parse(returnToken);
        if (jo.Property("token") != null)
        {
            returnToken = jo["token"]["id"].ToString();
            this.memoEdit1.Text = returnToken;
        }
        else
        {
            MessageBox.Show(jo["errmsg"].ToString());
        }
    }
    #endregion

获取tradeId
///
///获取tradeid
///

    public void GetTradeId() 
    {
        string url = "https://api.yonyouup.com/system/tradeid?";
        fromAccount = this.fromaccountT.Text;
        appKey = this.appkeyT.Text;
        appSecret = this.appsecretT.Text;
        url += "from_account=" + fromAccount + "&app_key=" + appKey + "&token=" + returnToken;
        string returnTradeID = HttpGet(url);
        this.tokenT.Text = returnTradeID;
        JObject jo = JObject.Parse(returnTradeID);
        if (jo.Property("trade") != null)
        {
            tradeID = jo["trade"]["id"].ToString();
            this.memoEdit2.Text = tradeID;
        }
        else
        {
            MessageBox.Show(jo["errmsg"].ToString());
        }
    }
  • 2
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 9
    评论
在Java中调用OpenAPI可以通过以下步骤实现: 1. 导入相关的依赖库:通常需要使用HTTP客户端库来进行网络请求,比如Apache HttpClient、OkHttp等。你可以在项目的构建工具(如Maven或Gradle)中添加相应的依赖。 2. 创建HTTP请求并送:使用HTTP客户端库创建一个GET或POST请求,并设置请求的URL、请求头、请求参数等信息。具体的操作会根据你所使用的HTTP客户端库而有所不同。 3. 处理API响应:送请求后,会得到一个HTTP响应。你可以通过读取响应流、解析JSON/XML等方式来处理API返回的数据。 这是一个简单的示例代码,演示如何在Java中调用一个简单的OpenAPI: ```java import org.apache.http.HttpEntity; import org.apache.http.HttpResponse; import org.apache.http.client.HttpClient; import org.apache.http.client.methods.HttpGet; import org.apache.http.impl.client.HttpClients; import org.apache.http.util.EntityUtils; public class OpenAPIClient { public static void main(String[] args) throws Exception { HttpClient httpClient = HttpClients.createDefault(); HttpGet request = new HttpGet("https://api.example.com/endpoint"); HttpResponse response = httpClient.execute(request); HttpEntity entity = response.getEntity(); if (entity != null) { String responseBody = EntityUtils.toString(entity); System.out.println(responseBody); } } } ``` 请注意,这只是一个简单的示例,实际情况可能会更加复杂。具体的操作取决于你要调用OpenAPI的要求和文档。你需要根据实际情况进行相应的调整和处理。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 9
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值