我正在尝试将我的React代码中的HTTP请求发送到iphub API。
文档中有一个如何在此服务中使用的示例:
curl http://v2.api.iphub.info/ip/8.8.8.8 -H "X-Key: 123"
我根据一些答案转换了请求,结果看起来像这样:
const ripeEndpoint = 'http://v2.api.iphub.info/ip/8.8.8.8'
fetch(ripeEndpoint, {
method: 'GET',
headers: new Headers({
'Access-Control-Allow-Origin': '*',
'Content-Type': 'multipart/form-data',
'X-Key': myApiKey
}),
})
但是响应是404,我认为我的请求有误,如何知道转换后的请求是否正确?
答案 0 :(得分:0)
您正在混合响应和请求标头。
响应标头是可以在HTTP响应中使用的HTTP header,它与消息的内容无关。响应标头,例如
Age
,Location
或Server
用于给出响应的更详细的上下文。 ...但是,在这种情况下,这些实体请求通常称为响应标头。
来源:https://developer.mozilla.org/en-US/docs/Glossary/Response_header
请求标头是可以在HTTP请求中使用的HTTP header,它与消息的内容无关。请求标头,例如
Accept
,Accept-*
或If-*
允许执行条件请求;其他类似Cookie
,User-Agent
或Referer
的上下文可以使上下文更精确,以便服务器可以定制答案。
来源:https://developer.mozilla.org/en-US/docs/Glossary/Request_header
对于一个简单的GET
请求,您通常根本不需要任何标头,请参见HTTP GET request in JavaScript?
对于您的情况,在curl
命令中,您指定了一个附加的标头,因此也可以使用Javascript来完成。
答案 1 :(得分:0)
尝试一下:
<?php
$ipaddress = $_SERVER['REMOTE_ADDR'];
$url = 'http://v2.api.iphub.info/ip/'.$ipaddress;
$auth = "OTf4sfpNHUhRM1AwNVMOZlJPSmRseTY0WTFsMGhtR1J0alhEbW==";
$ch = curl_init($url);
curl_setopt($ch, CURLOPT_HTTPHEADER, array('Content-Type:application/json'));
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_HTTPHEADER, ["X-Key: {$auth}"]);
$result = curl_exec($ch);
echo $result;
curl_close($ch);
?>