• [技术干货] 短链接的背后故事:为互联网用户带来的便捷与安全【转】
    一、短链接的起源短链接是一种将长URL转换为短、简洁的网址的技术。它的起源可以追溯到互联网发展的早期,当时长URL的使用给用户带来了繁琐和不便。为了解决这个问题,短链接技术应运而生。短链接 | 一个覆盖广泛主题工具的高效在线平台(amd794.com)cid:link_0二、短链接解决了什么问题短链接的主要目的是解决长URL带来的繁琐和不便。长URL不仅难以记忆和分享,而且在某些场景下可能会被截断或破坏。短链接通过将长URL转换为短、简洁的网址,使得用户可以更方便地分享和访问链接。三、短链接对现在的影响和作用链接分享:短链接在社交媒体和移动设备上的广泛应用,使得用户可以更轻松地分享链接。短链接不仅节省了字符空间,还可以提高链接的可读性和美观性。链接跟踪:短链接技术还可以用于链接跟踪和分析。通过在短链接中添加跟踪参数,可以追踪链接的点击量、来源和转化率等数据,为营销和分析提供有价值的信息。链接管理:短链接可以简化链接管理的流程。通过使用短链接服务,用户可以轻松地创建、编辑和管理大量的链接,提高链接管理的效率和便利性。链接安全:短链接技术可以提高链接的安全性。短链接服务通常会提供链接验证和防止恶意链接的功能,保护用户免受恶意网站和钓鱼攻击的威胁。四、短链接的应用领域社交媒体:短链接在社交媒体平台上被广泛应用,方便用户分享和点击链接,同时提供链接跟踪和分析的功能。移动应用:短链接在移动应用中用于分享和打开链接,可以提高用户体验和链接的可用性。营销活动:短链接在营销活动中起到重要作用,可以追踪链接的点击量和转化率,帮助营销人员评估活动效果。链接管理工具:短链接服务可以用于链接管理工具,帮助用户创建、编辑和管理大量的链接。五、总结短链接技术的诞生解决了长URL带来的繁琐和不便,对互联网用户的链接分享和访问带来了便利。短链接在社交媒体、移动应用、营销活动和链接管理等方面发挥着重要作用。同时,短链接技术还提供了链接跟踪和分析的功能,帮助用户评估链接的效果和营销活动的效果。随着互联网的发展,短链接技术仍然在不断创新和发展,为用户提供更便捷、安全和高效的链接管理和分享体验。转载自https://www.cnblogs.com/Amd794/p/18034385
  • [技术干货] Http请求的响应头中设置编码格式【转】
    使用Netty提供的Http服务,org.jboss.netty.handler.codec.http.HttpResponse设置编码格式    HttpResponse response = new DefaultHttpResponse(HTTP_1_1, OK);         response.headers().set("Content-Type", "application/json;charset=utf-8");Content-Type字段简介:MediaType,即是Internet Media Type,互联网媒体类型;也叫做MIME类型,在Http协议消息头中,使用Content-Type来表示具体请求中的媒体类型信息。常见的媒体格式类型如下:        text/html : HTML格式        text/plain :纯文本格式              text/xml :  XML格式        image/gif :gif图片格式            image/jpeg :jpg图片格式        image/png:png图片格式   以application开头的媒体格式类型:       application/xhtml+xml :XHTML格式       application/xml     : XML数据格式       application/atom+xml  :Atom XML聚合格式           application/json    : JSON数据格式       application/pdf       :pdf格式         application/msword  : Word文档格式       application/octet-stream : 二进制流数据(如常见的文件下载)       application/x-www-form-urlencoded : <form encType=””>中默认的encType,form表单数据被编码为key/value格式发送到服务器(表单默认的提交数据的格式)   另外一种常见的媒体格式是上传文件之时使用的:      multipart/form-data : 需要在表单中进行文件上传时,就需要使用该格式————————————————版权声明:本文为CSDN博主「琴瘦」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。原文链接:https://blog.csdn.net/qq_32293345/article/details/112466350
  • [技术干货] HTTP响应的状态码415解决【转】
    原因HTTP响应返回415状态码,错误信息为“Unsupported Media Type”,也就是服务器无法处理请求附带的媒体格式,解决方法就是在请求头中加入Content-Type指定媒体格式类型(也可以理解成编码格式)。另外在请求头中添加Accept可指定客户端能接受的内容类型。解决解决415状态码,可以通过在请求头中设置Content-Type对应的媒体类型,比如:在请求头中添加:contentType : "application/json;charset=utf-8",
  • [问题求助] UAP对阿里tts文本放音,通过ivr调取tts放音失败
    TTS or ASR license not enouth result=3
  • [其他类问题] HTTP API接口召集会议失败
    召集会议接口的参数较多,容易出错,任意参数有问题都会导致接口调用失败,现分别提供一代屏和二代屏的样例接口参数作为参考。注意事项:ucVoiceSwitchLimit:一代上从0开始,二代要求从1开始,否则参数校验不通过 uwBaudRate:一代传入WEB_RequestCallRateDataAPI接口的查询结果,二代可写死为3200 astTempSiteInfo中的ucCallType:枚举值如下,一代传入WEB_RequestCallTypeDataAPI接口的查询结果,二代可直接写死为10 0:ISDN呼叫 1:V35呼叫 2:E1呼叫 3:H.323呼叫 4:电话(纯音频) 5:PSTN(窄带) 6:T1呼叫 7:4E1呼叫 8:SIP呼叫 9:SIP Phone呼叫 10:auto自动切换呼叫类型
  • [问题求助] ccgateway的transfer三方转接口不保持情况问题求助
    【问题来源】 浙江110【问题简要】transfer三方转接口不保持情况下的测试问题: 1.第三方接通挂断后,坐席无法三方第四个号码,接口报错Get call data failed 2.无法加入第四方或更多方进行通话,接口报错Communications error【问题类别】 CTI平台提供的cc-gateway接口【AICC解决方案版本】 AICC 22.200 ,浙江110版本4月9日整体升级过
  • [最佳实践] REST接口访问Ranger最佳实践(获取,创建,修改策略)
    描述Ranger服务提供了集中式的权限管理框架,可以对HDFS、HBase、Hive、Yarn等组件进行细粒度的权限访问控制,并且提供了Web UI方便Ranger管理员进行操作,官方Rest API文档参考cid:link_0应用场景业务开发过程中,经常使用rest接口访问Ranger原生界面信息进行管理。 为了节省时间,可使用curl命令或者java样例代码进行策略的创建和修改。关键点1.交互过程使用kerberos认证,http访问场景下也叫做spnego认证2.同组件原生界面交互时需要跟服务端做ssl3.以最简单的GET,post,put请求为例分别获取、创建、修改对应组件策略4.对应用户名需使用组件系统用户加域名5.认证文件rangeradmin.keytab文件获取路径:/home/huawei/Bigdata/FusionInsight_HD_8.2.0/install/FusionInsight-Ranger-2.0.0/Ranger/ranger-admin/bin/keytabs/rangeradmin.keytab ,放置于conf目录下6.获取对应实例对应的直接ip以及端口,登录集群oms节点后台查看whitelist.txt文件,样例路径为:/opt/huawei/Bigdata/om-server/Apache-httpd-2.4.48/conf/whitelist.txt使用Curl命令进行ranger策略的修改和创建GET 获取策略(ip填写ranger实例ip)curl -i -k --user rangeradmin:password -H 'Content-type':'application/json' https://ip:21401/service/plugins/services/3?_=1678848744856 -X GETPost 创建策略curl -i -k --user rangeradmin:passoword -H 'Content-type':'application/json' https://ip:21401/service/plugins/policies/ -X POST -d '{"id":72,"guid":"1c4013e6-7cbc-49b9-ae60-28cf524a72c5","isEnabled":true,"createdBy":"rangeradmin","updatedBy":"rangeradmin","createTime":1678921726136,"updateTime":1678921726137,"version":1,"service":"Hive","name":"test","policyType":0,"policyPriority":0,"description":"","resourceSignature":"4032c2c9d3f55ceae24e0c3430c87af449f2d4d2eaf79c174186ad6eb18bb34e","isAuditEnabled":true,"resources":{"database":{"values":["eason"],"isExcludes":false,"isRecursive":false},"column":{"values":["*"],"isExcludes":false,"isRecursive":false},"table":{"values":["*"],"isExcludes":false,"isRecursive":false}},"policyItems":[{"accesses":[{"type":"select","isAllowed":true}],"users":["testuser"],"groups":["public"],"roles":[],"conditions":[],"delegateAdmin":false}],"denyPolicyItems":[],"allowExceptions":[],"denyExceptions":[],"dataMaskPolicyItems":[],"rowFilterPolicyItems":[],"serviceType":"hive","options":{},"validitySchedules":[],"policyLabels":[],"zoneName":"","isDenyAllElse":false,"isDefaultPolicy":false}'PUT 修改策略(id为需要修改的策略id)curl -i -k --user rangeradmin:password -H 'Content-type':'application/json' https://ip:21401/service/plugins/policies/id -X PUT -d '{"id":76,"guid":"1c4013e6-7cbc-49b9-ae60-28cf524a72c5","isEnabled":true,"createdBy":"rangeradmin","updatedBy":"rangeradmin","createTime":1678921726136,"updateTime":1678921726137,"version":1,"service":"Hive","name":"test","policyType":0,"policyPriority":0,"description":"","resourceSignature":"4032c2c9d3f55ceae24e0c3430c87af449f2d4d2eaf79c174186ad6eb18bb34e","isAuditEnabled":true,"resources":{"database":{"values":["eason"],"isExcludes":false,"isRecursive":false},"column":{"values":["*"],"isExcludes":false,"isRecursive":false},"table":{"values":["*"],"isExcludes":false,"isRecursive":false}},"policyItems":[{"accesses":[{"type":"select","isAllowed":true}],"users":["testuser","lyf"],"groups":["public","hive"],"roles":[],"conditions":[],"delegateAdmin":false}],"denyPolicyItems":[],"allowExceptions":[],"denyExceptions":[],"dataMaskPolicyItems":[],"rowFilterPolicyItems":[],"serviceType":"hive","options":{},"validitySchedules":[],"policyLabels":[],"zoneName":"","isDenyAllElse":false,"isDefaultPolicy":false}'使用JAVA样例代码创建和修改策略修改代码,设置参数url和json,传入HttpPost String json = ""; // 设置参数到请求对象中 HttpResponse response = Subject.doAs(sb, new PrivilegedExceptionAction<HttpResponse>() { @Override public HttpResponse run() throws Exception { StringEntity entity = new StringEntity(json, "UTF-8"); entity.setContentEncoding("UTF-8"); entity.setContentType("application/json"); HttpPost httpPost = new HttpPost(url); System.out.println(httpPost); httpPost.setEntity(entity); return httpClient.execute(httpPost); } });对应结果获取策略:创建策略:页面对应策略为: 修改策略:页面修改策略为: 注:修改策略时,put请求携带的json串对应的id也需进行修改,匹配所需修改的策略
  • [问题求助] ccgateway的内部求助里的三方求助能否求助外部的号码
    【问题来源】 浙江110【问题简要】 内部求助的innerhelp接口的三方求助功能里,请问第三方能否是手机号;参数dstaddress文档描述是工号或者技能组。【问题类别】 CTI平台提供的cc-gateway接口【AICC解决方案版本】 AICC 22.100  
  • [ROMA 20.0] for循环内调用httpExecutor.callPostAPI函数,循环一次就结束了??
    for( var i = 0 ; i < 10; i++ ){           terid = test["data"][i]["terid"];           url = 'http://**.**.*.*:***/api/v1/basic/gps/last';           params = {             'key': key,             'terid': [terid]           };           try {             // 调用请求并返回结果信息             strtmp = httpExecutor.callPostAPI(url,JSON.stringify(headers),JSON.stringify(params),ContentType);             strtmp += terid;                      } catch (e) {strtmp="catch";}                           }这个for循环内调用httpExecutor.callPostAPI函数,循环一次就结束了??
  • [问题求助] 使用requestApi报错
    请问这里一直报错请求参数无效是怎么回事,请求体的参数是用F12中的载荷找的
  • [新手课堂] HTTP状态码
    定义HTTP状态码的英文为HTTP Status Code。当浏览者访问一个网页时,浏览者的浏览器会向网页所在服务器发出请求。当浏览器接收并显示网页前,此网页所在的服务器会返回一个包含HTTP状态码的信息头(server header)用以响应浏览器的请求。常见的HTTP状态码:200 - 请求成功 301 - 资源(网页等)被永久转移到其它URL 404 - 请求的资源(网页等)不存在 500 - 内部服务器错误HTTP状态码分类HTTP状态码由三个十进制数字组成,第一个十进制数字定义了状态码的类型,后两个数字没有分类的作用。HTTP状态码共分为5种类型:分类分类描述1**信息,服务器收到请求,需要请求者继续执行操作2**成功,操作被成功接收并处理3**重定向,需要进一步的操作以完成请求4**客户端错误,请求包含语法错误或无法完成请求5**服务器错误,服务器在处理请求的过程中发生了错误HTTP状态码列表推荐阅读:高频HTTP状态码 | 【漫画版,成人系列】状态码状态码英文名称中文描述100Continue继续。客户端应继续其请求101Switching Protocols切换协议。服务器根据客户端的请求切换协议。只能切换到更高级的协议,例如,切换到HTTP的新版本协议200OK 请求成功。一般用于GET与POST请求201Created已创建。成功请求并创建了新的资源202Accepted已接受。已经接受请求,但未处理完成203Non-Authoritative Information非授权信息。请求成功。但返回的meta信息不在原始的服务器,而是一个副本204No Content无内容。服务器成功处理,但未返回内容。在未更新网页的情况下,可确保浏览器继续显示当前文档205Reset Content重置内容。服务器处理成功,用户终端(例如:浏览器)应重置文档视图。可通过此返回码清除浏览器的表单域206Partial Content部分内容。服务器成功处理了部分GET请求300Multiple Choices多种选择。请求的资源可包括多个位置,相应可返回一个资源特征与地址的列表用于用户终端(例如:浏览器)选择301Moved Permanently永久移动。请求的资源已被永久的移动到新URI,返回信息会包括新的URI,浏览器会自动定向到新URI。今后任何新的请求都应使用新的URI代替302Found临时移动。与301类似。但资源只是临时被移动。客户端应继续使用原有URI303See Other查看其它地址。与301类似。使用GET和POST请求查看304Not Modified未修改。所请求的资源未修改,服务器返回此状态码时,不会返回任何资源。客户端通常会缓存访问过的资源,通过提供一个头信息指出客户端希望只返回在指定日期之后修改的资源305Use Proxy使用代理。所请求的资源必须通过代理访问306Unused已经被废弃的HTTP状态码307Temporary Redirect临时重定向。与302类似。使用GET请求重定向400Bad Request客户端请求的语法错误,服务器无法理解401Unauthorized请求要求用户的身份认证402Payment Required保留,将来使用403Forbidden服务器理解请求客户端的请求,但是拒绝执行此请求404Not Found服务器无法根据客户端的请求找到资源(网页)。通过此代码,网站设计人员可设置”您所请求的资源无法找到”的个性页面405Method Not Allowed客户端请求中的方法被禁止406Not Acceptable服务器无法根据客户端请求的内容特性完成请求407Proxy Authentication Required请求要求代理的身份认证,与401类似408Request Time-out服务器等待客户端发送的请求时间过长,超时409Conflict服务器完成客户端的PUT请求是可能返回此代码,服务器处理请求时发生了冲突410Gone客户端请求的资源已经不存在。410不同于404,如果资源以前有现在被永久删除了可使用410代码,网站设计人员可通过301代码指定资源的新位置411Length Required服务器无法处理客户端发送的不带Content-Length的请求信息412Precondition Failed客户端请求信息的先决条件错误413Request Entity Too Large由于请求的实体过大,服务器无法处理,因此拒绝请求。为防止客户端的连续请求,服务器可能会关闭连接。如果只是服务器暂时无法处理,则会包含一个Retry-After的响应信息414Request-URI Too Large请求的URI过长(URI通常为网址),服务器无法处理415Unsupported Media Type服务器无法处理请求附带的媒体格式416Requested range not satisfiable客户端请求的范围无效417Expectation Failed服务器无法满足Expect的请求头信息500Internal Server Error服务器内部错误,无法完成请求501Not Implemented服务器不支持请求的功能,无法完成请求502Bad Gateway充当网关或代理的服务器,从远端服务器接收到了一个无效的请求503Service Unavailable由于超载或系统维护,服务器暂时的无法处理客户端的请求。延时的长度可包含在服务器的Retry-After头信息中504Gateway Time-out充当网关或代理的服务器,未及时从远端服务器获取请求505HTTP Version not supported服务器不支持请求的HTTP协议的版本,无法完成处理
  • [技术干货] RESTCONF协议命令
    REST为Representational State Transfer,即表述性状态转移,表达了资源在网络中进行状态转移,采用HTTP协议进行传输。通过RESTCONF协议,可以在Web端操作设备数据。RESTCONF采用URL标识资源,格式如下:其中,资源类别包括数据资源(data)和操作资源(operations)。操作类型有:GET、POST、PUT、PATCH、DELETE。这样就通过RESTCONF协议实现了北向客户端对设备数据的操作。
  • [问题求助] D3250-10-siu关于目标识别后进行http回调
    请教各位,有一个D3250-19-SIU摄像机,现在有个需求,在进行目标识别完成后能不能主动向其他平台发送一个http请求并提交识别后的目标id,以便完成平台上进行考勤处理。请问这个需求能否实现,非常感谢!!
  • [问题求助] You must provide the Content-Length HTTP header.
    在java中使用SDK中的ObsClient创建文件夹,一直报这个错误,请问是什么原因呢?com.obs.services.exception.ObsException: Error message:Request Error.OBS servcie Error Message. -- ResponseCode: 411, ResponseStatus: Length Required, XML Error Message: <?xml version="1.0" encoding="UTF-8" standalone="yes"?><Error><Code>MissingContentLength</Code><Message>You must provide the Content-Length HTTP header.</Message><RequestId>00000182860CA6DDA00528BC0F95E5CF</RequestId><HostId>pYX1eq2f8I3POTxcI2YWXsM3gzzsVkIVTKu/OPrmGi6JumvmGzSeaYHx07TVm8Nz</HostId></Error>    at com.obs.services.internal.utils.ServiceUtils.changeFromServiceException(ServiceUtils.java:533)    at com.obs.services.AbstractClient.doActionWithResult(AbstractClient.java:402)    at com.obs.services.AbstractObjectClient.putObject(AbstractObjectClient.java:277)    at com.obs.services.AbstractObjectClient.putObject(AbstractObjectClient.java:251)    at com.obs.services.AbstractObjectClient.putObject(AbstractObjectClient.java:262)    at com.huawei.it.dataware.config.ObsFileConfig.upload(ObsFileConfig.java:28)    at com.huawei.it.dataware.config.ObsFileConfigTest.upload(ObsFileConfigTest.java:37)    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)    at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)    at java.lang.reflect.Method.invoke(Method.java:498)    at org.junit.runners.model.FrameworkMethod$1.runReflectiveCall(FrameworkMethod.java:59)    at org.junit.internal.runners.model.ReflectiveCallable.run(ReflectiveCallable.java:12)    at org.junit.runners.model.FrameworkMethod.invokeExplosively(FrameworkMethod.java:56)    at org.junit.internal.runners.statements.InvokeMethod.evaluate(InvokeMethod.java:17)    at org.springframework.test.context.junit4.statements.RunBeforeTestExecutionCallbacks.evaluate(RunBeforeTestExecutionCallbacks.java:74)    at org.springframework.test.context.junit4.statements.RunAfterTestExecutionCallbacks.evaluate(RunAfterTestExecutionCallbacks.java:84)    at org.springframework.test.context.junit4.statements.RunBeforeTestMethodCallbacks.evaluate(RunBeforeTestMethodCallbacks.java:75)    at org.springframework.test.context.junit4.statements.RunAfterTestMethodCallbacks.evaluate(RunAfterTestMethodCallbacks.java:86)
  • [问题求助] SMC2.0 HTTP API调用无法获取TOKEN