2010-02-14 3 views
1

Я пытаюсь встроить Bulk SMS API на моем сайте ... Но код дает 401Удаленный сервер возвратил ошибку: (401) Несанкционированное

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, порт, имя пользователя, пароль, 9999999999, имя отправителя все замены .. –

ответ

1

Этот код:

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

I s сообщить вашему HttpWebRequest, чтобы перейти на http://IP:port, как буквально на сервер IP. http://IP не существует, вам нужно указать фактическое имя хоста, например «www.google.com» ... на любом сервере, на котором вы пытаетесь попасть.

+0

Я подставив фактический IP моего сервера там вместо IP слова ... –

+0

@KK - Значит, пути нет? Просто 'http: // host: port /? User = usernamepassword = passwordPhoneNumber = 91999999999 & Text = Testing & Sender = sender% 20name'? Примечание. Вероятно, вы захотели еще немного «&» между вашими параметрами запроса. –

+0

ohh shit ..i забыл & в 2 местах Thanx man ... я потратил много времени на этот ..thanx снова .. –

0

Проблема, скорее всего, в:

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

Вы пропустили несколько & с. Должно быть, вероятно, что-то вроде:

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

Edit: Кроме того, нет никаких причин, чтобы использовать string.Format() здесь. Это будет работать так же:

urlBuilder.Query = "user=" + UserName + "&password=" + password + "&PhoneNumber=" + PhoneNumber + "&Text=" + Text + "&Sender=" + Sender; 
Смежные вопросы