Skip to main content

SEND SMS or Call HttpWebRequest on Proxy Server or ISA Server

Dear All 
I tried to access the HttpWebRequest to send the SMS the code was working fine with my online website but when i run it with my local server and the LAN server i got and server not responding error

Original Solution Post 
http://stackoverflow.com/questions/20336826/httpwebrequest-cannot-connect-through-proxy

A connection attempt failed because the connected party did not properly respond after a period of time, or established connection failed because connected host has failed to respond IP Address:80
Description: An unhandled exception occurred during the execution of the current web request. Please review the stack trace for more information about the error and where it originated in the code.

Exception Details: System.Net.Sockets.SocketException: A connection attempt failed because the connected party did not properly respond after a period of time, or established connection failed because connected host has failed to respond IP ADDRESS:80


After quick review of my code i found the issue that my local enviroment is using ISA proxy server and that the main issue that the local intranet environment is throwing following error

Once i do the research i found the above post as a solution with quick hint

1) Add the following lines in your code 
HttpWebRequest req = (HttpWebRequest)WebRequest.Create("http://www.websiteurl.com");

// This is a problem that the code did not use the proxy
req.Proxy = new WebProxy("[Your Proxy Server Name]", 8080);
req.Proxy.Credentials = new NetworkCredential("User Name", "Password");

Here is the complete code 

using System;
using System.Data;
using System.Configuration;
using System.Collections;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Web.UI.HtmlControls;
using System.Net;
using System.IO;
public partial class _SendSMS : System.Web.UI.Page
{

    private void InitializeComponent()
    {

        this.Load += new System.EventHandler(this.Page_Load);

    }

    private void Page_Load(object sender, EventArgs e)
    {
       
       SendMessage(username, password, message, sender, number);
    }

public string SendMessage(string username, string password, string msg, string sender, string numbers)
    {
HttpWebRequest req = (HttpWebRequest)WebRequest.Create("http://www.websiteurl.com");
        

        
        req.Method = "POST";
        
        req.ContentType = "application/x-www-form-urlencoded";
    req.Proxy = new WebProxy("[Your Proxy Server Name]", 8080);
req.Proxy.Credentials = new NetworkCredential("User Name", "Password");
        
        string postData = "mobile=" + username + "&password=" + password + "&numbers=" + numbers + "&sender=" + sender + "&msg=" + ConvertToUnicode(msg) + "&applicationType=24";
        req.ContentLength = postData.Length;

        StreamWriter stOut = new
        StreamWriter(req.GetRequestStream(),
        System.Text.Encoding.ASCII);
        stOut.Write(postData);
        stOut.Close();
        // Do the request to get the response
        string strResponse;
        StreamReader stIn = new StreamReader(req.GetResponse().GetResponseStream());
        strResponse = stIn.ReadToEnd();
        stIn.Close();
        return strResponse;
    }


I hope it save your time
Rashid Imran Bilgrami



Comments

Popular posts from this blog

OLEDB jet 4.0 driver In Vista 64bit / he 'Microsoft.Jet.OLEDB.4.0' provider is not registered on the local machine

Well i think you must be thankful for me specailly for this research i am really getting the solution after 6 month research that is how to enable the oledb jet 4.0 driver in vista, i read arround 100s of articles and maximum said that is not possible to enable it and ala bla well at the end i got the answer that is so easy Acctually that is correct that oledb jet 4.0 driver is not avaialble for 64 bit but if you run your IIS on 32 bit instead of 64 then Oledb jet will working fine Here are the steps Click on the Start > Program > Administrative Tool > IIS Management panel Select the Computer name Right click on the application pool and select properties Select "TRUE" in Enable 32 Bit Application by default it is false Then this problem will resolve if you need any assitance then feel free to email me rashidbilgrami@hotmail.com Regards Rashid Imran Bilgrami CEO Best visualization www.bestvisualization.com

How to convert and crack windows server 2012 from Evaluation to Full

Dear All This is a way how you Convert Evalution to Full Step1: Open CMD and run following command DISM /online /Get-CurrentEdition <edition ID> is like ServerStandard with out Eval Step 2: DISM /online /Set-Edition:<edition ID> /ProductKey:XXXXX-XXXXX-XXXXX-XXXXX-XXXXX /AcceptEula WINDOWS SERVER 2012 Serial Key Windows Server 2012 DataCenter: 48HP8-DN98B-MYWDG-T2DCC-8W83P Datacenter: Y4TGP-NPTV9-HTC2H-7MGQ3-DV4TW Standard: XC9B7-NBPP2-83J2H-RHMBY-92BT4 Standard R2: DBGBW-NPF86-BJVTX-K3WKJ-MTB6V Server Essentials: K2XGM-NMBT3-2R6Q8-WF2FK-P36R2 For Standard R2 here is a command For R2 its like that DISM /online /Set-Edition:ServerStandard /ProductKey:DBGBW-NPF86-BJVTX-K3WKJ-MTB6V /AcceptEula Regards

C# Generate All Dates between starting and ending date

Dear Readers This code  will return a generic list of DateTime containing the dates between a starting date and ending date:  //Here is the function private List<DateTime> GetDateRange(DateTime StartingDate, DateTime EndingDate) {     if (StartingDate > EndingDate)     {         return null;     }     List<DateTime> rv = new List<DateTime>();     DateTime tmpDate = StartingDate;     do     {         rv.Add(tmpDate);         tmpDate = tmpDate.AddDays(1);     } while (tmpDate <= EndingDate);     return rv; } //Here you call this function DateTime StartingDate = DateTime.Parse("02/25/2007"); DateTime EndingDate = DateTime.Parse("03/06/2007"); foreach (DateTime date in GetDateRange(StartingDate,EndingDate)) {    Response.Write(date.ToShortDateString()); } And it will r...