我有以下代码(请原谅错误的编码,就像调试一样):
$postData = Mage::app()->getRequest()->getPost();
if(!$postData)
{
$postData = $this->getRequest()->getPost();
}
if(!$postData)
{
$postData = $_POST;
}
Run Code Online (Sandbox Code Playgroud)
正如您所看到的,我只是想获取 HTTP POST 值。
这是场景:
Shopify 以 JSON 格式发布。
关于我无法捕获 POST 数组有什么想法吗?
我正在使用 Amazon SNS 在 HTTP/HTTPS 终端节点上接收推送消息。端点应用程序是用 Django 编写的。要在端点(Web 应用程序)上接收通知,HTTP/HTTPS 端点需要订阅主题。
订阅后,Amazon SNS 会向指定 URL 发送 HTTP POST 请求,需要通过检索 HTTP POST 请求标头中的参数来确认订阅。
我尝试使用 Google Chrome 扩展程序Postman通过在我的 url 上发送 POST 请求,但它给出了CSRF token error.
我的问题是,当 Amzaon SNS 发送订阅确认时,它如何在 POST 请求中发送 CSRF 令牌,以便我可以处理请求并检索所需的信息?
文档:http://docs.aws.amazon.com/sns/latest/dg/SendMessageToHttp.html
我有一个 RESTful API,可以在其中添加GET节点和Post节点 - 基本的东西。
我的“问题”是这样的:
当用户发布新节点时,该节点已经存在。我应该回来吗
400 bad request409 conflict200 and the existing node我倾向于 200 并返回现有节点。但是如果您愿意的话,409 然后让用户自己获取正确的节点似乎更“正确”。
对于 RESTful api 来说,在这个问题上的“最佳实践”是什么?
在我的 WordPress 端,我安装了 REST-API 插件并通过以下方式成功获取帖子:
\n\nmywp.org/wp-json/wp/v2/posts\nRun Code Online (Sandbox Code Playgroud)\n\n但是,只允许“get”,如果我执行“post”等任何其他操作,它会返回 401。我正在使用 Chrome 应用程序“Postman”和基本身份验证。
\n\n我得到什么:
\n\n "code": "rest_cannot_create",\n "message": "Sorry, you are not allowed to create new posts.",\n "data": {\n "status": 401\nRun Code Online (Sandbox Code Playgroud)\n\n这是标题:
\n\nAccess-Control-Allow-Credentials \xe2\x86\x92true\nAccess-Control-Allow-Headers \xe2\x86\x92Authorization\nAccess-Control-Allow-Methods \xe2\x86\x92POST, GET, OPTIONS, PUT, DELETE\nAccess-Control-Allow-Origin \xe2\x86\x92\nAccess-Control-Expose-Headers \xe2\x86\x92X-WP-Total, X-WP-TotalPages\nAllow \xe2\x86\x92GET\nConnection \xe2\x86\x92Keep-Alive\nContent-Length \xe2\x86\x92111\nContent-Type \xe2\x86\x92application/json; charset=UTF-8\nRun Code Online (Sandbox Code Playgroud)\n\n我发现这里提出了同样的问题,但答案对我不起作用。
\n\n我是rest-api 的新手,不知道我应该做什么。
\n\n谢谢你!
\n我需要从页面中提取所有游轮。我发现我需要提出2个请求。一个用于获取总结果 + 参考个别邮轮,另一个用于邮轮本身。至此我已经成功提出请求并得到了JSON。问题是该请求仅返回第一页中包含的引用。最初我用的是这个:
https://www.pocruises.com.au/sc_ignore/b2c/cruiseresults/searchresults
Run Code Online (Sandbox Code Playgroud)
作为POST请求 URL。我是请求中的一些标头:
Host: www.pocruises.com.au
User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:52.0) Gecko/20100101 Firefox/52.0
Accept: application/json, text/plain, */*
Accept-Language: en-US,en;q=0.5
Accept-Encoding: gzip, deflate, br
Referer: https://www.pocruises.com.au/cruises/search
Content-Type: application/json;charset=utf-8
Content-Length: 613
Cookie: ASP.NET_SessionId=zm50ahxa4uoiwcuowgkeizcn; SC_ANALYTICS_GLOBAL_COOKIE=f459da6904ee4cea8a809455f37b09c5|False; optimizelyEndUserId=oeu1480435687102r0.9194470051495017; optimizelySegments=%7B%223906442756%22%3A%22none%22%2C%223911484226%22%3A%22ff%22%2C%223917223299%22%3A%22direct%22%2C%223920524266%22%3A%22false%22%2C%224924982297%22%3A%22true%22%7D; optimizelyBuckets=%7B%227883701652%22%3A%227867701359%22%7D; _ga=GA1.3.1128287966.1480435688; AdBlockDetected=false; _msuuid_29439mm27589=D0670AB5-C96A-4706-A563-9F29FCA3D9D2; gwcc=%7B%22fallback%22%3A%221300159454%22%2C%22clabel%22%3A%22ykseCIGywFkQhoDuxQM%22%2C%22backoff%22%3A86400%2C%22backoff_expires%22%3A1480522087%7D; gaFindACruise=; _gat=1; optimizelyPendingLogEvents=%5B%22n%3Dengagement%26u%3Doeu1480435687102r0.9194470051495017%26wxhr%3Dtrue%26time%3D1480437791.708%26f%3D7274530066%2C7883701652%26g%3D3909534788%22%5D
Connection: keep-alive
Run Code Online (Sandbox Code Playgroud)
到目前为止,如果不计算我返回的仅有 6 个结果,它仍然有效。在这篇文章发表时他们一定已经 106 岁了。响应包含包含总计数(正确)和页码、总页数等的元数据。然后我看到了这个:
Firefox Screenshot
这Request body包含了我在所有页面中导航所需的一切。这是我到目前为止的全部代码:
import requests
url = "https://www.pocruises.com.au/sc_ignore/b2c/cruiseresults/searchresults"
session = requests.session()
data = {"searchParameters": {"p": [], "c": [], "d": [], "s": …Run Code Online (Sandbox Code Playgroud) 以下代码用于通过 pardot api 发送电子邮件。
if (ConfigurationManager.AppSettings.Count > 0)
{
uri = ConfigurationManager.AppSettings["PardotURI"].ToString() + "email/version/4/do/send/prospect_email/" + email;
uri += "?user_key=" + ConfigurationManager.AppSettings["PardotUserKey"].ToString();
uri += "&api_key=" + GetAPIKey() + "&campaign_id=" + GetPardotCampaign("Capis News");
uri += "&from_email=" + ConfigurationManager.AppSettings["FromEmail"].ToString();
uri += "&from_name=" + ConfigurationManager.AppSettings["FromName"].ToString();
uri += "&name=FlyNews - " + DateTime.Now.ToString("MM/dd/yyy h:mm tt");
uri += "&subject=CAPIS: Client Holdings News " + DateTime.Today.ToString("MM/dd/yyyy");
}
try
{
MultipartFormDataContent data = new MultipartFormDataContent();
data.Add(new StringContent(htmlContent), "html_content");
data.Add(new StringContent(textContent), "text_content");
await client.PostAsync(uri, data);
client.Dispose();
}
catch(Exception ex) …Run Code Online (Sandbox Code Playgroud) 我正在开发一个宁静的 api,我需要更新一个资源(即一个包含 10 个字段的客户详细信息记录)。
在添加请求时,我发送一个带有完整记录的 Post 请求。在更新请求时,我发送一个包含 10 个字段的完整记录的 PUT 请求。在验证请求中,我发送一个只有两个字段的 PUT 请求,即 recordId 和 versionNo。在删除请求时,我在 HttpOptions 中发送一个带有两个字段的 DELETE 请求。
我有几个问题:
虽然,它是一个宁静的 api,但它是一个特定的应用程序,它将被一个有角度的应用程序使用,所以我应该返回数据以响应 POST/PUT 请求。
我应该在验证的情况下使用 PATCH(或任何其他仅将 recordId 和 versionNo 发送到服务器以更改某些字段的操作)还是可以使用 PUT。
为了统一起见,我是否应该在删除请求的正文中发送数据,因为我需要 recordId 和 versionNo 来删除记录。
我正在尝试接收refresh_token我的 Ionic 应用程序,我成功接收了access_token.
我从我的 TypeScript 项目中的端点接收code(authorization_code或access_token)https://accounts.spotify.com/authorize?client_id=,我将它传递cURL给测试如何获取refresh_token但唯一收到错误的东西。
curl -H "Content-Type: application/x-www-form-urlencoded" -H "Authorization: Basic MzBhNT...ZWIyZWQ=" -d grant_type=authorization_code -d code=BQAjgZOFne3p8PB4ARJkrXtq...kI4xJvhQ7SutZoJqVWILCY -d redirect_uri=http%3A%2F%2Flocalhost%3A8100%2Fmain -X POST https://accounts.spotify.com/api/token
Run Code Online (Sandbox Code Playgroud)
预期输出:
{
"access_token": "NgCXRK...MzYjw",
"token_type": "Bearer",
"scope": ...,
"expires_in": 3600,
"refresh_token": "NgAagA...Um_SHo"
}
Run Code Online (Sandbox Code Playgroud)
但收到错误:
{"error":"invalid_grant","error_description":"Invalid authorization code"}
Run Code Online (Sandbox Code Playgroud) 我想获取我使用 Delphi 以 HTML 格式发送的 post 值。我正在使用TIdHTTPServer.
我的目标是获取POST发送的数据。但有一个问题。我使用如下图所示的工具将其作为“表单数据”发送。捕获 POST 请求。
不幸的是,当我发出与HTML相同的请求时,它看不到 POST。我如何实现这一目标?
procedure TForm1.serviceCommandGet(AContext: TIdContext;
ARequestInfo: TIdHTTPRequestInfo; AResponseInfo: TIdHTTPResponseInfo);
var
receiveStream: TStream;
begin
if ARequestInfo.URI = '/test.php' then
begin
if ARequestInfo.Command = 'POST' then
begin
receiveStream := ARequestInfo.PostStream;
if Assigned(receiveStream) then
begin
LOG.Lines.Add(ReadStringFromStream(receiveStream));
end;
AResponseInfo.ResponseNo := 200;
end;
end;
end;
Run Code Online (Sandbox Code Playgroud)
HTML POST 请求(Delphi 没有看到那个请求。我的目标是实现这个愿望。)
<form method="post" action="http://localhost:99/test.php">
<input type="hidden" name="test" value="04545">
<input type="submit" value="send"/>
</form>
Run Code Online (Sandbox Code Playgroud) 具体来说,我希望以下示例能够正常工作:
from typing import List
from pydantic import BaseModel
from fastapi import FastAPI, UploadFile, File
app = FastAPI()
class DataConfiguration(BaseModel):
textColumnNames: List[str]
idColumn: str
@app.post("/data")
async def data(dataConfiguration: DataConfiguration,
csvFile: UploadFile = File(...)):
pass
# read requested id and text columns from csvFile
Run Code Online (Sandbox Code Playgroud)
如果这不是 POST 请求的正确方法,请告诉我如何从 FastAPI 中上传的 CSV 文件中选择所需的列。
http-post ×10
http ×2
python ×2
rest ×2
.net ×1
amazon-sns ×1
api ×1
delphi ×1
django ×1
fastapi ×1
http-delete ×1
http-get ×1
http-method ×1
http-put ×1
idhttp ×1
insomnia ×1
javascript ×1
json ×1
magento ×1
post ×1
pydantic ×1
python-3.x ×1
rad-studio ×1
spotify ×1
wordpress ×1