Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Сети";
Текущий архив: 2003.03.17;
Скачать: [xml.tar.bz2];

Вниз

Работа с 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;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.46 MB
Время: 0.008 c
14-54259
ZeroDivide
2003-02-28 10:59
2003.03.17
В роли рака


6-54150
Junior
2003-01-24 20:38
2003.03.17
Как узнать програмно МАС адрес компа?


14-54295
uw
2003-02-28 19:01
2003.03.17
Что ответить дедушке 2


8-54116
MPiskunov
2002-12-02 13:24
2003.03.17
Проблема при записи звука TMediaPlayer-ом под win98...


14-54242
ROk
2003-02-28 10:57
2003.03.17
Синонимы





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский