Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2003.03.17;
Скачать: CL | DM;

Вниз

Работа с WinSock2   Найти похожие ветки 

 
R4D][   (2003-01-26 12:31) [0]

Всем привет, я на протяжение 2х дней пытался понять, что неправельного в моем запросе. Ну не приходит ответ на этот запрос:

POST http://quickmail.ru/fcgi/send.cgi HTTP/1.0
Referer: http://quickmail.ru/fcgi/send.cgi
Host: www.quickmail.ru
Content-type: multipart/form-data
//<Пустая строка>
email1=E_F_I_M@rambler.ru&from=&email2=&file1=&file2=&file3=&file4=&subject=Test&message=GOTCHA!!!
//<Пустая строка>

P.S. Для того, чтобы отправить этот запрос, я использую WinSock2, но это не столь важно. Т.к. мне кажется, что ошибка в запросе.
P.P.S Простите, что несколько не в тему сайта...


 
ole ©   (2003-01-27 04:38) [1]

Меня смущает тип содержимого: multipart/form-data.
В этом случае подразумевается обмен данными с сервером поблочно..
а у тебя практически обычный GET запрос, который мог вместиться в URL... Попробуй в запросе еще и размер данных указать.


 
R4D][   (2003-01-27 14:03) [2]

Дык у меня POST запрос-то...Вообще, я пытался сделать сокращенное подобие того, что я видел в логах Naviscop"a, но там фигурирует boundary.
Может тебе текст программы поможет понять мою ошибку? Я, вообще, недавно с WinSock2 связался, облазил Win32SDK и несколько сайтов о программирование на C. Оттуда я наподобие GET запроса попытался сделать POST. Может в этом моя ошибка?
В общем вот код, если найдешь ошибку, буду ооочень благодарен.

program sender;

uses
Windows,
WinSock2,
SysUtils;

const
ContentBuf = "email1=E_F_I_M@rambler.ru&from=&email2=&file1=&file2=&file3=&file4=&subject=TEST&message=";
MesBuf = "GOTCHA!!!"+#10#13;
var
AboutWS : TWSADATA;
SockAddr : TSockAddr;
SFC : TSocket;
MailBuf : PChar;
AnswerBuf: PChar;
x : Integer;
begin
WSAStartup(MakeWord(2,0),AboutWS);
SFC:=Socket(AF_INET,SOCK_STREAM,IPPROTO_TCP);
if SFC=INVALID_SOCKET then MessageBox(0,"Can""t get socket :(","",mb_ok);
SockAddr.sin_family:=AF_INET;
SockAddr.sin_port:=HTons(80);
SockAddr.sin_addr.S_addr:=Inet_Addr(PChar("195.209.49.52"));
if Connect(SFC,@SockAddr,SizeOf(SockAddr))=SOCKET_ERROR then MessageBox(0,"Can""t connect :(","",mb_ok);
GetMem(MailBuf,sizeOf(MesBuf)+500);
StrCopy(MailBuf,PChar("POST /fcgi/send.cgi HTTP/1.0"+#10#13));
// StrCat(MailBuf,"Referer: http://quickmail.ru/fcgi/send.cgi"+#10#13);
StrCat(MailBuf,"Host: www.quickmail.ru"+#10#13);
StrCat(MailBuf,"Content-type: multipart/form-data"+#10#13);
StrCat(MailBuf,PChar("Content-Length: "+IntToStr(Length(ContentBuf)+Length(MesBuf)-8)));
StrCat(Mailbuf,#10#13#10#13);
StrCat(MailBuf,ContentBuf);
StrCat(MailBuf,MesBuf);
if Send(SFC,MailBuf,SizeOf(MailBuf),0)=SOCKET_ERROR then MessageBox(0,"Can""t send :(","",mb_ok);
MessageBox(0,MailBuf,"",mb_ok);
while x<>0 do
x:=Recv(SFC,AnswerBuf,SizeOf(AnswerBuf),0);
MessageBox(0,AnswerBuf,"",mb_ok);
CloseSocket(SFC);
FreeMem(MailBuf);
end.


P.S. Конечно, я забыл указать размер данных, но тут я исправил и все равно не работает


 
Vit1251 ©   (2003-01-27 18:53) [3]

Не хватает одной важной вещи размера пакета POST:

Content-length: 17

Это пример неграмотно мной написанный! Кстати на моей ББС есть программа которая была написана используя 499 посылок пакетов POST на сервер Metrocom (нет это не хакерская программа - она просто опрашивала различные АТС там есть такая фича как обратный звонок вроде или что то типо этого где видно качество АТС-так вот что бы послать данные надо использовать POST запрос чем я и занимался!!!


 
R4D][   (2003-01-28 15:10) [4]

2Vit1251:
У меня есть Content-Length. Смотри строчку:
StrCat(MailBuf,PChar("Content-Length: "+IntToStr(Length(ContentBuf)+Length(MesBuf)-8)));



Страницы: 1 вся ветка

Текущий архив: 2003.03.17;
Скачать: CL | DM;

Наверх




Память: 0.47 MB
Время: 0.016 c
1-54043
Rule
2003-03-05 01:52
2003.03.17
Подскажите как перевести числовые значения в слова.


1-54038
crazy_2k
2003-03-05 00:58
2003.03.17
Как подсчитать количество таблиц в БД.


3-53915
ruslan_as
2003-02-24 15:16
2003.03.17
Названия столбцов в DBGrid в две строки


14-54297
AZ
2003-02-28 07:10
2003.03.17
MSN Messenger


1-53992
Демонов Е.В.
2003-03-06 13:07
2003.03.17
VBA