- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我想通过我的C程序接收kazoo的webhook(HTTP POST)。我认为它提高了我的知识,而且很有趣(我想早些时候)。
我 try catch HTTP POST 请求,但听不到任何声音。我的做法和理解有误吗?
我可以将 Webhook 定位到它可以执行的二进制文件/脚本,然后生成事件。
例如(“http://server/c/hookreceiver.bin ”)和完整示例
curl -X PUT -H "X-Auth-Token: $AUTH_TOKEN" -d '{"data":{"name": "hookreceiver.bin", "uri": "http://server/c/hookreceiver.bin","http_verb": "post","hook": "channel_create","retries":4}}'
Apache 日志:
"POST /c/hookreceiver.bin HTTP/1.1" 500 527 "-" "-"
如果我设置了 webhook 我的脚本 (webhookExample.php),我可以通过 php 捕获此 POST
但是如果我尝试捕捉 C 的这个帖子,我什么也没有:(
为什么我无法通过 c 接收任何内容,而使用 php 可以接收任何内容?
很抱歉提出奇怪的问题感谢您抽出时间
附注我如何在这种模式下通过 gdb 或其他方式调试我的程序,然后我的二进制文件调用其他应用程序?
webhookExample.php
<?php
$data = file_get_contents("php://input");
$my_file = 'MYfile.txt';
$handle = fopen($my_file, 'w') or die('Cannot open file: '.$my_file);
fwrite($handle, $data);
fclose($handle);
?>
file hookreceiver.bin
int main(int argc,char *argv[])
{
int portno = 80;
char *host = "SERVER_NAME";
struct hostent *server;
struct sockaddr_in serv_addr;
int sockfd, bytes, received, total;
char response[4096];
FILE *fp;
char name1[] = "./MY_FLAG.txt";
char name[100];
sprintf(name, "%s_%d",name1, getpid() );
if ((fp = fopen(name, "w")) == NULL) {
// Error open
return 0;
}
// create the socket
sockfd = socket(AF_INET, SOCK_STREAM, 0);
if (sockfd < 0) fprintf(fp, "ERROR opening socket");
else fprintf(fp, "sock ok\n");
// lookup the ip address
server = gethostbyname(host);
if (server == NULL) fprintf(fp, "ERROR, no such host");
// fill in the structure
memset(&serv_addr,0,sizeof(serv_addr));
serv_addr.sin_family = AF_INET;
serv_addr.sin_port = htons(portno);
memcpy(&serv_addr.sin_addr.s_addr,server->h_addr,server->h_length);
// connect the socket
if (connect(sockfd,(struct sockaddr *)&serv_addr,sizeof(serv_addr)) < 0)
fprintf(fp, "ERROR connecting");
else
fprintf(fp, "ok - conn |%d|\n", sockfd );
fflush(fp);
bytes = read(sockfd,response+received,4096,NULL, MSG_NOSIGNAL);
if (bytes < 0)
fprintf(fp, "ERROR reading response from socket\n");
else
fprintf(fp, "ok - bytes > 0 %d |%s|\n",bytes, response);
// close the socket
close(sockfd);
fprintf(fp, "ok - END\n");
fclose(fp);
return 0;
}
php 脚本的结果
cat MYfile.txt
account_id=24..7&owner_id=3e03&request=udev2Cnsl%40server.local&reseller_id=2c7×tamp=63720841342&...
C 程序的结果
cat MY_FLAG.txt_27968
sock ok
ok - conn |4|
ok - prepare for receive
ok - bytes > 0 0 ||
ok - received == total
ok - END
最佳答案
答案极其便宜。
服务器只是将文本写入标准输入。
为了处理 webhook 服务器,请执行 HTTP POST 请求“POST/c/hookreceiver.bin HTTP/1.1”
并调用二进制hookreceiver.bin
int main(int argc,char *argv[])
{
FILE *fp;
char name1[] = "./CATCHED_HOOK.txt";
char buf[1];
sprintf(name, "%s_%d",name1, getpid() );
if ((fp = fopen(name, "w")) == NULL) {
printf("File not opened\n");
return 0;
}
while(read(0,buf, sizeof(mbuf))>0) {
fprintf(fp,buf);
}
fclose(fp);
return 0;
}
猫CATCHED_HOOK.txt_1212232
account_id=2424c7&authorizing_id=0b3316d6&authorizing_type=device&call_direction=inbound&call_id=1169696&caller_id_name=udev1Cnsl&caller_id_number=udev1Cnsl&&&emergency_resource_used=false&from=udev1Cnsl40ce.local&local_resource_used=true&is_ Internal_leg=false&owner_id=866ae5&request=300240ce.local&reseller_id=244e36be95324c7×tamp=63722050107&to=300240ce.local&hook_event=channel_createok - END
关于c - 如何通过C接收webhook,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55481673/
我想知道是否有任何方法可以为所有意图激活 webhook(除了一个一个激活它)。谢谢! 最佳答案 目前还没有这样的功能,但我遇到了类似的问题,这就是我解决它的方法: 下载所有意图的zip文件 写一个程
谁能在最基本的层面上解释一下 Incoming webhook、Outgoing webhook 和 O365 webhook 之间的区别 最佳答案 Webhooks 是一种轻型 HTTP 模式,用于
好吧,这可能 super 简单,但我只是没有足够的背景知识来确定: 如果我定义了一个 webhook 回调(例如,OpenAPI 中的回调):我可以从常规网页使用该回调吗? 我会假设是的,否则有什么意
我正在尝试设置 Grafana 以将 webhook 发送到 Microsoft Teams。我可以通过终端 curl 到地址,但不能通过 Grafanas 界面。 我将 URL 添加到 Grafan
我正在玩Paypal REST(php)环境,我喜欢玩沙盒webhooks。 是否可以将Paypal沙箱Webhooks与本地设置一起使用? http://localhost/test 是无效的网址
使用 slack webhooks,我可以使用消息中的简码发送表情符号: curl -X POST --data-urlencode "payload={\"channel\": \"#my_noti
我们想将Slack Webhook(传出Webhook)与内部Web服务一起使用。 我们公司位于防火墙后面,因此必须将外部连接列入白名单。 Slack似乎有多个地址,它将从中发送API请求,并且似乎没
我们目前正在实现 Mailgun 的 Webhook,以将电子邮件回复转换为应用程序中评论线程中的回复。我们设置一条路由来匹配收件人,并将操作设置为 store(notify="https://exa
我可以通过应用程序脚本通过 webhook 将消息发送到聊天室,但是我如何发送回复该消息。这是一种单向聊天。我如何才能通过 webhook 将其作为对话流. 最佳答案 您可以提供一个threadKey
我正在尝试注册一个 evernote webhook。但似乎注册表不起作用。 Evernote webhook 注册表格: 我填写了表格,点击“提交”,但总是得到以下错误响应: {"error":"R
我可以通过应用程序脚本通过 webhook 将消息发送到聊天室,但是我如何发送回复该消息。这是一种单向聊天。我如何才能通过 webhook 将其作为对话流. 最佳答案 您可以提供一个threadKey
我有一个订阅页面提要事件的 webhook。 我希望它告诉我何时在页面或用户管理的页面上创建了公共(public)事件。 应用仪表板告诉我这是将发送给我的 JSON 对象: { "field": "
当我在 google 项目和 API.AI 代理上创建操作时,我使用自己的服务作为 API.AI 实现 webhook。我希望 API.AI 会调用我的 webhook。但是当我通过谷歌上的 Acti
我正在按照本教程在 App Inventor 中发送电子邮件:https://www.hackster.io/taifun/trigger-ifttt-to-send-an-email-using-a
我正在尝试将消息发布到松弛团队中的任何 channel 。 我的 webhook 已正确创建并安装到我的测试团队中。作为安装过程的一部分,我选择了“发布到#channel1” 当我查看权限时,我看到我
我快速浏览了与 Bluesnap webhooks 相关的 IPN 类型和参数 - https://support.bluesnap.com/v2.2.7/docs/ipn-parameter-ref
我有一个 HTML 表格,我正在尝试通过 webhook 将其发布到 Slack。 有没有办法将 HTML 表格发布到 Slack? 这是 HTML 代码: HTML Tabl
我在我的 Slack 工作区中创建了一个传入 Webhook。我正在使用第三方工具将 JSON 对象发布到 Hook url。我想向@user_1 发送通知 我的问题是通知发送到我和该用户@user_
我正在开发一个与 Trello 紧密集成的应用程序,并使用 Trello webhooks 做很多事情。但是,我在 Trello 的开发人员文档中找不到任何地方可能触发 webhook 的“操作”是什
当我创建这篇文章时,我只是在stackoverflow上找到了没有任何回复的帖子...... TelegramBot. "Webhook can be set up only on ports 80,
我是一名优秀的程序员,十分优秀!