Удаленный сервер возвратил ошибку: (401) Несанкционированный - PullRequest
1 голос
/ 14 февраля 2010

Я пытаюсь встроить API массовых SMS на мой сайт ... Но код дает 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();
    }

}

Ответы [ 2 ]

1 голос
/ 14 февраля 2010

Этот код:

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

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

0 голосов
/ 14 февраля 2010

Скорее всего проблема в:

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

Вам не хватает нескольких & s. Вероятно, должно быть что-то вроде:

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

Редактировать: Также нет причин использовать string.Format() здесь. Это будет работать так же:

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