2010-02-14 5 views
1

Je suis en train d'intégrer l'API SMS en vrac dans mon site ... Mais le code donne 401Le serveur distant a renvoyé une erreur: (401) non autorisée

ASPX:

<%@ Page Language="C#" AutoEventWireup="true" CodeFile="Default.aspx.cs" Inherits="_Default" %>%> 

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> 


<html xmlns="http://www.w3.org/1999/xhtml" > 
<head id="Head1" runat="server"> 
    <title>Send SMS</title> 
</head> 
<body> 
    <form id="form2" runat="server"> 
    <div> 
    </div> 
    </form> 
</body> 
</html> 

aspx.cs

using System; 
using System.Data; 
using System.Configuration; 
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.Text; 
using System.IO; 
using System.Net; 
using System.Web.Services; 

public partial class _Default : System.Web.UI.Page 
{ 
    public void SendSMS() 
    { 
     UriBuilder urlBuilder = new UriBuilder(); 
     urlBuilder.Host = "IP"; 
     urlBuilder.Port = port; 

     string UserName = "username"; 
     string password = "password"; 
     string PhoneNumber = "919999999999"; 
     string Text = "Testing"; 
     string Sender = "sender name"; 

     urlBuilder.Query = string.Format("user=" + UserName + "password=" + password + "PhoneNumber=" + PhoneNumber + "&Text=" + Text + "&Sender=" + Sender); 

     HttpWebRequest httpReq = (HttpWebRequest)WebRequest.Create(new Uri(urlBuilder.ToString(), false)); 
     HttpWebResponse httpResponse = (HttpWebResponse)(httpReq.GetResponse()); 
    } 



    protected void Page_Load(object sender, EventArgs e) 
    { 
     SendSMS(); 
    } 

} 
+0

IP, port, nom d'utilisateur, mot de passe, 9999999999, nom de l'expéditeur sont toutes les substitutions .. –

Répondre

1

Ce code:

urlBuilder.Host = "IP"; 
    urlBuilder.Port = port; 

I s indiquant votre HttpWebRequest pour aller à http://IP:port comme littéralement l'adresse IP du serveur. http://IP n'existe pas, vous devez y mettre le nom d'hôte réel, comme "www.google.com" ... quel que soit le serveur que vous essayez d'atteindre.

+0

Je remplace IP réelle de mon serveur il au lieu de mot IP ... –

+0

@KK - Donc il n'y a pas de chemin? Juste 'http: // hôte: port /? User = nom d'utilisateurpassword = passwordPhoneNumber = 91999999999 & Text = Testing & Sender = expéditeur% 20name'? Note: vous vouliez probablement plus de '& 'entre vos paramètres de requête. –

+0

ohh merde .. j'ai oublié & à 2 endroits Thanx man ... j'ai perdu beaucoup de temps sur ce ..thanx encore .. –

0

Le problème est le plus probable:

urlBuilder.Query = string.Format("user=" + UserName + "password=" + password + "PhoneNumber=" + PhoneNumber + "&Text=" + Text + "&Sender=" + Sender); 

vous manque quelques & s. Devrait probablement être quelque chose comme:

urlBuilder.Query = string.Format("user=" + UserName + "&password=" + password + "&PhoneNumber=" + PhoneNumber + "&Text=" + Text + "&Sender=" + Sender); 

Edit: De plus il n'y a aucune raison d'être ici en utilisant string.Format(). Cela fonctionne de la même:

urlBuilder.Query = "user=" + UserName + "&password=" + password + "&PhoneNumber=" + PhoneNumber + "&Text=" + Text + "&Sender=" + Sender; 
Questions connexes