Delphi中怎么通过http get方式来调用url
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Delphi中怎么通过http get方式来调用url相关的知识,希望对你有一定的参考价值。
API接口使用HTTP协议,可接受HTTPGET 和HTTPPOST访问。参数传递方式为application/x-www-url-encoded,编码方式为UTF-8,且须遵循URL 编码规范
(RFC3986)对保留字符进行百分号编码。
操作结果返回方式为XML,编码方式为UTF-8。
接口地址:
http://api.123.com/XMLHttpService.do
比如使用 API 创建域名,假设已有一个模板 ID 为 10,使用此模板注册一域名 456.com,注册一年,
以下是以HTTPGET方式调用 API的URL:
http://api.123.com/XMLHttpService.do?username=test@namemax.cn&password=888888&command=re
gisterDomainName&domainName=456.om&period=1&templateId=10
URL中的username paeeword command domainname period templateId都是参数
请问如何使用Delphi的http get 调用url,并返回?需要加什么控件?最好给出完整的代码。
若操作成功,服务器将返回以下内容:
<?xml version="1.0" encoding="UTF-8"?>
<response>
<command>registerDomain</command>
<result>SUCCESSFUL</result>
<data>
<domain>456.com</domain>
<creationDate>2008-06-22 08:38:00</creationDate>
<expirationDate>2009-06-21 08:38:00</expirationDate>
<priceId>CNNIC-REG-1Y</priceId>
<price>1.0</price>
<autoRenew>false</autoRenew>
<template>
<templateId>1000</templateId>
<name>xxxxxx</name>
<registrant>
<cnOrganization>xxxxxx</cnOrganization>
<organization>xxxxxx</organization>
<cnName>哈哈</cnName>
<name>haha</name>
<cnProvince>shandong</cnProvince>
<province>linyi</province>
<cnCity>lili</cnCity>
<city>lili</city>
<cnAddress>dddd</cnAddress>
<address>dddd</address>
<postal>333333</postal>
<email>service@wwwwww.com</email>
<phone>+86.13833138033</phone>
<fax>+86.13833200533</fax>
</registrant>
<adminSameAsRegistrant>true</adminSameAsRegistrant>
<techSameAsRegistrant>true</techSameAsRegistrant>
<billingSameAsRegistrant>true</billingSameAsRegistrant>
</template>
<statuses>
<status>clientDeleteProhibited</status>
<status>clientTransferProhibited</status>
</statuses>
<nsList>
<ns>ns1.123.com</ns>
<ns>ns2.123.com</ns>
</nsList>
</data>
</response> 参考技术A 使用 TIdHttp 组件
Google端点在日志中为GET /提供了无效的HTTP模板/
我正在使用Google端点来部署我的一些API。我在返回HTTP 200的[GET /]上公开运行状况API,以便GKE入口可以通过调用此API将我的容器视为运行状况良好。
但是当我使用[ip-address /]调用此端点时,端点总是抱怨方法不存在。这对于路径[ip-address / hello]
正常工作问:我是否应该以其他不同方式配置/端点。
下面是ESP(GKE可扩展服务代理容器)的启动程序日志
nginx: [warn] Using trusted CA certificates file: /etc/nginx/trusted-ca-certificates.crt
2020/06/02 11:33:13[error]1#1: Invalid HTTP template: /
2020/06/02 11:33:13[error]1#1: Failed to add http rule: selector: "1.abcd_api_endpoints_my_app_cloud_goog.GetHealth"
get: "/"
我的开放式api分隔词yaml
swagger: "2.0"
info:
title: Dummy API
description: Dummy API
version: 1.0.0
host: abcd-api.endpoints.my-app.cloud.goog
consumes:
- application/json
produces:
- application/json
schemes:
- http
paths:
/:
get:
description: Logs service health status
operationId: getHealth
responses:
'200':
description: Logs service health.
/hello:
get:
description: Returns Hello World
operationId: helloWorld
responses:
'200':
description: Returns Hello World
答案
在阅读了esp的Google端点限制之后,我知道esp拒绝了根路径上的请求。
https://cloud.google.com/endpoints/docs/openapi/openapi-limitations#operations_on_url_root_path_
为了解决此问题并提供运行状况端点esp提供了--healthz参数。
https://cloud.google.com/endpoints/docs/openapi/specify-proxy-startup-options
https://github.com/GoogleCloudPlatform/endpoints-samples/blob/master/k8s/esp_echo_gke_ingress.yaml
以上是关于Delphi中怎么通过http get方式来调用url的主要内容,如果未能解决你的问题,请参考以下文章