Это пример отправки текста, а не файла.Запрос методом POST на PHP через сокет
На PHP, правда, но через сокеты SM будет тоже самое.
Немного запутался...В ресиве Вы уже получаете ответ сервера на запрос.
Если уверены, что запрос составлен корректно, его реализовывать не надо. В противном случае, можно предохраниться и сделать обработку ответа.
#pragma semicolon 1
#include <socket>
new Handle:g_hPostSocket;
new String:g_sSocketHost[] = "example.com",
String:g_sHostFile[] = "file1.php", // В этом файле содержится слово text
String:g_sSendData[] = "example_text";
public OnPluginStart()
{
g_hPostSocket = SocketCreate(SOCKET_TCP, OnSocketError);
SocketConnect(g_hPostSocket, OnSocketConnected, OnSocketReceive, OnSocketDisconnected, g_sSocketHost, 80);
}
public OnSocketConnected(Handle:socket, any:arg)
{
decl String:sBuffer[256];
Format(sBuffer, sizeof(sBuffer), "POST /%s HTTP/1.1\r\nHost: %s\r\nContent-Type: application/x-www-form-urlencoded\r\nContent-Length: %d\r\n\r\n%s\r\n\r\n", g_sHostFile, g_sSocketHost, strlen(g_sSendData), g_sSendData);
SocketSend(socket, sBuffer);
}
public OnSocketReceive(Handle:socket, String:receiveData[], const dataSize, any:arg)
{
PrintToServer("%s", receiveData);
}
public OnSocketDisconnected(Handle:socket, any:arg)
{
CloseHandle(socket);
g_hPostSocket = INVALID_HANDLE;
}
POST /file1.php HTTP/1.1
Host: example.com
Content-Type: application/x-www-form-urlencoded
Content-Length: 32
example_text
HTTP/1.1 200 OK
Server: nginx/1.12.2
Date: Sun, 27 Jan 2019 12:35:39 GMT
Content-Type: text/html
Content-Length: 4
Connection: keep-alive
X-Powered-By: PHP/5.4.45-pl0-gentoo
text
С .txt вообще не работает: 405 Not Allowed.а здесь ( String:g_sHostFile[] = "file1.php", // В этом файле содержится слово text) точно .php? Не txt? Вы ведь с сервера отсылаете насколько я понял.
В прикреплённом примере я пытаюсь отправить текст, а не файл.@Nova, потому что Вы изначально неправильно отправляете файл. Посмотрите, как любой HTTP-клиент отправляет их.
На примере браузера Firefox и загрузки аватарки на этот форум:
Посмотреть вложение 38416