首页 > 其他分享 >如何自动生成短链接【API接口】

如何自动生成短链接【API接口】

时间:2024-09-23 10:23:35浏览次数:3  
标签:java url 接口 response token API import data 链接

目前短链接的使用范围应该是挺广泛了,比如发送短信、渠道推广查看访问量、小程序转短链接等等。

虽然短链接的技术门槛并不高,但是对于企业来说,自己开发一套短链接服务可能并不划算。有以下几点原因:

1、需要投入额外的研发人力资源、时间。

2、需要持续的服务器费用,以及运维来保证稳定性。

3、功能特性和灵活性并不如一些专业的短链接平台,比如能实现动态修改、数据统计、绑定自有域名、管理控制台等等。

C1N短网址(c1n.cn)提供了短链接生成以及管理的API接口,企业可以快速低成本集成到自己的产品服务中。

以下内容专业度过高,建议直接转发给公司技术人员查看,这里以热门的开发语言php、python、java、JavaScript为例,列举详细的api接口代码示例。注意:token需要前往C1N短网址(c1n.cn)控制台获取。

PHP版本

<?php

function short_url($long_url)
{
    $headers = [
        'Content-Type: application/x-www-form-urlencoded',
        'token: your_token'  // 替换为您的token
    ];
    $data = [
        'url' => $long_url,
        'key' => '',
		'remark' => '',
		'expiryDate' => ''
    ];
    $ch = curl_init();
    curl_setopt($ch, CURLOPT_URL, 'https://c1n.cn/link/short');
    curl_setopt($ch, CURLOPT_HTTPHEADER, $headers);
    curl_setopt($ch, CURLOPT_POSTFIELDS, http_build_query($data));
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
    $response = curl_exec($ch);
    curl_close($ch);
    $response_data = json_decode($response, true);

    if ($response_data['code'] == 0) {
        return $response_data['data'];
    }
    echo $response_data['msg'];
}

// 请确保您的PHP环境中已经安装了cURL库
$res = short_url('https://example.com');  // 替换为您要生成短链接的原始网址
echo $res;

?>

python版本

import requests

def short_url(long_url):
    headers = {
        'Content-Type': 'application/x-www-form-urlencoded',
        'token': 'you_token'  # 替换为您的token
    }
    data = {
        'url': long_url,
        'key': '',
        'remark': '',
        'expiryDate': ''
    }
    response = requests.post('https://c1n.cn/link/short', headers=headers, data=data)
    response_data = response.json()

    if response_data.get('code') == 0:
        return response_data.get('data')
    print(response_data.get('msg'))


res = short_url('https://example.com')  # 替换为您要生成短链接的原始网址
print(res)

java版本

import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.net.HttpURLConnection;
import java.net.URL;
import java.net.URLEncoder;
import java.nio.charset.StandardCharsets;

import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.JSONObject;

public class ShortUrlDemo {

	/**
	 * 使用前需要先引入fastjson依赖
	 * 	<dependency>
		    <groupId>com.alibaba</groupId>
		    <artifactId>fastjson</artifactId>
		    <version>1.2.47</version>
	    </dependency>
	 */
	public static void main(String[] args) {
		String res = shortUrl("https://example.com"); //替换为您要生成短链接的原始网址
		System.out.println(res);
	}

	public static String shortUrl(String longUrl) {
		try {
			URL url = new URL("https://c1n.cn/link/short");

			HttpURLConnection connection = (HttpURLConnection) url.openConnection();
			connection.setRequestMethod("POST");
			connection.setRequestProperty("Content-Type", "application/x-www-form-urlencoded");
			connection.setRequestProperty("token", "you_token"); // 替换为您的token
			connection.setDoOutput(true);

			String requestBody = "url=" + URLEncoder.encode(longUrl, "UTF-8") + "&key=&remark=&expiryDate=";
			connection.getOutputStream().write(requestBody.getBytes(StandardCharsets.UTF_8));

			BufferedReader reader = new BufferedReader(new InputStreamReader(connection.getInputStream()));
			StringBuilder response = new StringBuilder();
			String line;
			while ((line = reader.readLine()) != null) {
				response.append(line);
			}
			reader.close();
			connection.disconnect();
			JSONObject obj = JSON.parseObject(response.toString());
			if (obj.getInteger("code") == 0) {
				return obj.getString("data");
			}
			System.out.println(obj);
			return "";
		} catch (IOException e) {
			e.printStackTrace();
			return "";
		}
	}

}

JavaScript版本

function shortUrl(longUrl) {
  var xhr = new XMLHttpRequest();
  var url = 'https://c1n.cn/link/short';
  var headers = {
    'Content-Type': 'application/x-www-form-urlencoded',
    'token': 'your_token' // 替换为您的token
  };
  var data = 'url=' + encodeURIComponent(longUrl) + '&key=&remark=&expiryDate=';

  xhr.open('POST', url, true);
  for (var key in headers) {
    xhr.setRequestHeader(key, headers[key]);
  }

  xhr.onreadystatechange = function() {
    if (xhr.readyState === XMLHttpRequest.DONE) {
      if (xhr.status === 200) {
        var responseJson = JSON.parse(xhr.responseText);
        if (responseJson.code === 0) {
          console.log(responseJson.data);
        } else {
          console.log(responseJson.msg);
        }
      } else {
        console.log('Error:', xhr.status);
      }
    }
  };

  xhr.send(data);
}

shortUrl('https://example.com'); // 替换为您要生成短链接的原始网址

标签:java,url,接口,response,token,API,import,data,链接
From: https://blog.csdn.net/weixin_43833373/article/details/142359656

相关文章

  • 易优eyoucms友情链接怎么添加?
    在易优CMS(EyouCMS)中添加友情链接的过程涉及后台设置和前端模板的调整。下面是详细的步骤:后台添加友情链接登录后台:登录到易优CMS的后台管理系统。进入SEO设置:在后台菜单中找到“SEO设置”或类似的选项。进入友情链接管理:在SEO设置中找到“友情链接”或类......
  • 后台上传大文件时提示上传接口错误
    当网站后台上传文件大于50M时提示上传接口错误,即使已经调整了PHP的文件上传限制和POST限制,以及后台的附件上传大小限制,可能还需要调整Apache的配置。解决方法1.调整Apache配置打开Apache配置文件:打开Apache的主配置文件 httpd.conf。通常该文件位于 /etc/httpd/conf/ 或......
  • Java集合类面试题:Map接口(链表、HashMap、红黑树)
    收集大量Java经典面试题目......
  • 【接口自动化测试】jsonpath应用:提取数据、断言、接口关联
    安装命令pipinstalljsonpath表达式importjsonpathres=jsonpath.jsonpath(obj,expr)1、返回结果要么是list,要么是False2、obj 要提取的对象,应为字典类型。报文的格式是json,必须进行数据的转换, 用json.loads()将json转换成字典类型   expr jsonpath表......
  • Vue(15)——组合式API②
    生命周期函数 选项式组合式beforeCreate/createdsetupbeforeMountonBeforeMount       mountedonMounedbeforeUpdateonBeforeUpdateupdatedonUpdatedbeforeUnmountonBeforeUnmountunmountedonUnmounted父子通信父传子基本思想:父组件中给子组件绑定属性子组件......
  • Vue(14)——组合式API①
    setup特点:执行实际比beforeCreate还要早,并且获取不到this<script>exportdefault{setup(){console.log('setup函数');},beforeCreate(){console.log('beforeCreate函数');}}</script>            在setup函数中......
  • 使用Postman测试MQTT协议接口
    MQTT概述MQTT(MessageTelemetryTransport)是一种用于物联网(IoT)的消息传递协议。它的使用范围从家庭自动化和可穿戴设备的小型设备到大型工业机械的自动化。它是一种轻量级技术,以发布/订阅模式为模型,其中连接到单个代理的客户端可以将消息发布到不同的主题,并订阅主题以接收来自......
  • SpringBoot接口防抖(防重复提交)的一些实现方案
    Java专栏2024年09月20日12:20甘肃来源:juejin.cn/post/7308992638468227109前言啥是防抖思路解析分布式部署下如何做接口防抖?具体实现请求锁唯一key生成重复提交判断前言作为一名老码农,在开发后端Java业务系统,包括各种管理后台和小程序等。在这些项目中,我设计过单/多......
  • Java创建接口详细过程
    在Java中,创建mapper、dao(数据访问对象)、service、serviceImpl(service实现类)、controller等组件是构建企业级应用常见的分层架构模式。这种分层架构有助于实现高内聚低耦合的设计,提高代码的可维护性和可扩展性。mapperrXML文件创建MapperXML文件用于定义Java对象和数据库表......
  • 论 JAVA 集合框架中 接口与类的关系
    前言这是笔者在学习过程中的一篇"备忘录",其目的是能用最EZ最粗鄙的语言口述出JAVA集合框架中所有类与接口的关系本人在不断地学习中,总会混淆集合框架中的类和接口,以及它们的作用关系,虽然不影响我的使用,但是我也不想一直糊涂下去,故而趁知识还没混淆之际,赶紧写下来.......