مشکل استفاده از کمپوننت IdHTTP برای ارسال مقادیر به URL
با سلام
من برای ارسال پیامک در برنامه می خواستم از سرویس URL سرویس های پیامکی استفاده کنم. برای همین از کمپوننت IdHTTP استفاده می کنم.
ولی زمان post مقادیر خطا میده. در صورتی که مقدار پراپرتی HandleRedirecs رو TRUE میکنم خطای " Internal Server Error " میده و اگه اون رو False کنم
خطای "HTTP 1.1 302 Found" رو میده
البته بقیه پارامترهای IdHTTP بصورت زیر تنظیم شده :
lParamList := TStringList.Create ;
lParamList.Add(edUrlUserName.Text + '=' + edtUserName.Text) ;
lParamList.Add(edUrlPass.Text + '=' + edtPassword.Text) ;
If Trim(edUrlDomain.Text) <> '' Then
lParamList.Add(edUrlDomain.Text + '=' + edtDomain.Text) ;
lParamList.Add(edUrlMsg.Text + '=' + UTF8Encode(AText)) ;
lParamList.Add(edUrlReciverNum.Text + '=' + ANumber) ;
lParamList.Add(edUrlSenderNum.Text + '=' + smsNumber) ;
Try
IdHTTP1.AllowCookies := True ;
IdHTTP1.Request.Accept := 'text/html, */*' ;
IdHTTP1.Request.ContentEncoding := '' ;
IdHTTP1.Request.ContentType := 'application/x-www-form-urlencoded' ;
Rst := IdHTTP1.Post(edUrlAddress.Text, lParamList) ;
میخواستم ببینک کسی از این کمپوننت استفاده کرده ؟؟؟
ممنون
نقل قول: مشکل استفاده از کمپوننت IdHTTP برای ارسال مقادیر به URL
HandleRedirects باید True باشه، چون معمولا در اینگونه سرویسها درخواست Redirect میشه به یک URL دیگه
در مورد پیغام Internal Server Error ، این پیغام دلایل مختلفی می تونه داشته باشه
با استفاده از Try ... Except به صورت زیر اطلاعات بیشتری از خطا رو مشاهده کنید تا بتونید به جواب بهتری برسید :
var
ECode : Integer;
EMsg, EInfo : String;
begin
...
try
IdHTTP1.Post();
except
on E: EIdHTTPProtocolException do
begin
ECode := E.ErrorCode;
EMsg := E.Message;
EInfo := E.ErrorMessage;
end;
end;
end;
اما برای استفاده از سرویس پیامک چرا از SOAP استفاده نمی کنید ؟
شرکت سرویس دهنده وب سرویس SOAP ارایه نمی کنه ؟
نقل قول: مشکل استفاده از کمپوننت IdHTTP برای ارسال مقادیر به URL
یکی از امکانات نرم افزار ارسال از طریق وب سرویس هستش، ولی از اونجا که تعداد این وب سرویس ها برای هر سرویس پیامکی کم نیست و هر کدوم ساختار خودشون رو دارند
پیاده سازی اونها تو برنامه بسیار زمانبر خواهد بود. ولی با در نظر گرفتن تنظیمات URL هر کدوم از این سرویس های پیامکی می توان به راحتی از این سرویس استفاده کرد.
هر چند مشکل حل شد.
مشکل و ایجاد خطاهای ذکر شده به دلیل عدم استفاده از متد URLEncode بود البته با استفاده از متد GET
به این صورت
Rst := IdHTTP1.Get(URLEncode(edUrlAddress.Text + '?' + ParamStr
با تشکر
نقل قول: مشکل استفاده از کمپوننت IdHTTP برای ارسال مقادیر به URL
نقل قول:
نوشته شده توسط
Mahmood_M
HandleRedirects باید True باشه، چون معمولا در اینگونه سرویسها درخواست Redirect میشه به یک URL دیگه
در مورد پیغام Internal Server Error ، این پیغام دلایل مختلفی می تونه داشته باشه
با استفاده از Try ... Except به صورت زیر اطلاعات بیشتری از خطا رو مشاهده کنید تا بتونید به جواب بهتری برسید :
var
ECode : Integer;
EMsg, EInfo : String;
begin
...
try
IdHTTP1.Post();
except
on E: EIdHTTPProtocolException do
begin
ECode := E.ErrorCode;
EMsg := E.Message;
EInfo := E.ErrorMessage;
end;
end;
end;
اما برای استفاده از سرویس پیامک چرا از SOAP استفاده نمی کنید ؟
شرکت سرویس دهنده وب سرویس SOAP ارایه نمی کنه ؟
سلام
میشه نحوه استفاده از soap رو توضیح بدین؟؟
ممنون
نقل قول: مشکل استفاده از کمپوننت IdHTTP برای ارسال مقادیر به URL
نقل قول:
نوشته شده توسط
mobtakeran.sanat
یکی از امکانات نرم افزار ارسال از طریق وب سرویس هستش، ولی از اونجا که تعداد این وب سرویس ها برای هر سرویس پیامکی کم نیست و هر کدوم ساختار خودشون رو دارند
پیاده سازی اونها تو برنامه بسیار زمانبر خواهد بود. ولی با در نظر گرفتن تنظیمات URL هر کدوم از این سرویس های پیامکی می توان به راحتی از این سرویس استفاده کرد.
هر چند مشکل حل شد.
مشکل و ایجاد خطاهای ذکر شده به دلیل عدم استفاده از متد URLEncode بود البته با استفاده از متد GET
به این صورت
Rst := IdHTTP1.Get(URLEncode(edUrlAddress.Text + '?' + ParamStr
با تشکر
سلام
میشه خواهش کنم نحوه استفاده این کامپوننت رو که استفاده کردین توضیح بدین؟؟
آیا از نحوه ارسال و استفاده کامپوننت راضی هستین؟
نقل قول: مشکل استفاده از کمپوننت IdHTTP برای ارسال مقادیر به URL
نقل قول:
نوشته شده توسط
mobtakeran.sanat
با سلام
من برای ارسال پیامک در برنامه می خواستم از سرویس URL سرویس های پیامکی استفاده کنم. برای همین از کمپوننت IdHTTP استفاده می کنم.
ولی زمان post مقادیر خطا میده. در صورتی که مقدار پراپرتی HandleRedirecs رو TRUE میکنم خطای " Internal Server Error " میده و اگه اون رو False کنم
خطای "HTTP 1.1 302 Found" رو میده
البته بقیه پارامترهای IdHTTP بصورت زیر تنظیم شده :
lParamList := TStringList.Create ;
lParamList.Add(edUrlUserName.Text + '=' + edtUserName.Text) ;
lParamList.Add(edUrlPass.Text + '=' + edtPassword.Text) ;
If Trim(edUrlDomain.Text) <> '' Then
lParamList.Add(edUrlDomain.Text + '=' + edtDomain.Text) ;
lParamList.Add(edUrlMsg.Text + '=' + UTF8Encode(AText)) ;
lParamList.Add(edUrlReciverNum.Text + '=' + ANumber) ;
lParamList.Add(edUrlSenderNum.Text + '=' + smsNumber) ;
Try
IdHTTP1.AllowCookies := True ;
IdHTTP1.Request.Accept := 'text/html, */*' ;
IdHTTP1.Request.ContentEncoding := '' ;
IdHTTP1.Request.ContentType := 'application/x-www-form-urlencoded' ;
Rst := IdHTTP1.Post(edUrlAddress.Text, lParamList) ;
میخواستم ببینک کسی از این کمپوننت استفاده کرده ؟؟؟
ممنون
سلام دوست عزیز
امکانش هست کامپوننت idhttp رو برای منم ارسال کنید . ممنون میشم . خیلی دنبال گشتم پیداش نکردم.
reza_jahanii@yahoo.com
نقل قول: مشکل استفاده از کمپوننت IdHTTP برای ارسال مقادیر به URL
کامپوننت idhttp از کامپوننتهای پیشفرض خود دلفی هست و نیاز به نصب جدا نداره.