Sure, this will throw the exception:
HttpWebRequest req =
HttpWebRequest.Create(@"http://-eeayr4mwvtw998.usercash.com/") as
HttpWebRequest;
I ought to mention, I'm using .NET 1.1. Maybe it was something fixed in a
later version...
> Can you post some short but complete code sample to allow somebody to
> reproduce the issue?
[quoted text clipped - 19 lines]
>>
>> Thanks.
Peter Duniho - 26 Aug 2007 19:47 GMT
> Sure, this will throw the exception:
>
[quoted text clipped - 4 lines]
> I ought to mention, I'm using .NET 1.1. Maybe it was something fixed in a
> later version...
Looks like. I pasted the above line into an empty console application
(which is, by the way, the true "minimally complete" example of code
that might reproduce the issue :) ), and it executed fine without an
exception.
.NET 2.0 here.
Pete
pedrito - 27 Aug 2007 04:08 GMT
>> Sure, this will throw the exception:
>>
[quoted text clipped - 12 lines]
>
> Pete
Yeah, I had a feeling it'd probably work in 2.0... I'm wondering if I can
encode it somehow that the uri parser wouldn't choke... Oh well, it's not
horribly important. I'll play with it a bit and see what I can do...
Yeah, I thought of doing a console app, but I already had the Win app handy
(because I was using it to look at the HTML coming back from a url), so
easier to copy and paste that than create yet another test app.
Peter Duniho - 27 Aug 2007 04:58 GMT
> Yeah, I had a feeling it'd probably work in 2.0... I'm wondering if I can
> encode it somehow that the uri parser wouldn't choke... Oh well, it's not
> horribly important. I'll play with it a bit and see what I can do...
Well, obviously it'd be better if you could switch to a newer version of
.NET. But barring that, you could just pre-process your string and
replace characters that might be problematic with a different
representation.
I don't know how often you're going to run into this, but in the
specific example, just replacing the '-' character with %2D might
convince the parser to let it through.
Pete
pedrito - 27 Aug 2007 14:01 GMT
>> Yeah, I had a feeling it'd probably work in 2.0... I'm wondering if I can
>> encode it somehow that the uri parser wouldn't choke... Oh well, it's not
[quoted text clipped - 10 lines]
>
> Pete
Pete, thanks. Tried that (replacing it with the %2D encoding) yesterday and
it didn't work... Same error.
I may bite the bullet and upgrade. I have 2005 Express. It's just that I
have to use 2003 for work and it's what I know and I'm comfortable with. The
app that does this isn't huge, but it's not small and I just don't know what
all is going to be involved in upgrading it. I won't have much time to work
on it during the week (it's a side-project), but maybe next weekend I'll try
porting it over and see how much work it's going to be.
Thanks.
> Can you post some short but complete code sample to allow somebody to
> reproduce the issue?
[quoted text clipped - 19 lines]
>>
>> Thanks.
Sorry, you asked for short but complete. Here's complete (though I think
the previous post is plenty to demonstrate how easy it is to produce).
using System;
using System.Drawing;
using System.Collections;
using System.ComponentModel;
using System.Windows.Forms;
using System.Data;
using System.Net;
using System.Text;
namespace UserCashTest
{
/// <summary>
/// Summary description for Form1.
/// </summary>
public class Form1 : System.Windows.Forms.Form
{
private System.Windows.Forms.Button button1;
private System.Windows.Forms.TextBox textBox1;
/// <summary>
/// Required designer variable.
/// </summary>
private System.ComponentModel.Container components = null;
public Form1()
{
//
// Required for Windows Form Designer support
//
InitializeComponent();
//
// TODO: Add any constructor code after InitializeComponent call
//
}
/// <summary>
/// Clean up any resources being used.
/// </summary>
protected override void Dispose( bool disposing )
{
if( disposing )
{
if (components != null)
{
components.Dispose();
}
}
base.Dispose( disposing );
}
#region Windows Form Designer generated code
/// <summary>
/// Required method for Designer support - do not modify
/// the contents of this method with the code editor.
/// </summary>
private void InitializeComponent()
{
this.button1 = new System.Windows.Forms.Button();
this.textBox1 = new System.Windows.Forms.TextBox();
this.SuspendLayout();
//
// button1
//
this.button1.Location = new System.Drawing.Point(88, 16);
this.button1.Name = "button1";
this.button1.TabIndex = 0;
this.button1.Text = "button1";
this.button1.Click += new
System.EventHandler(this.button1_Click);
//
// textBox1
//
this.textBox1.Anchor =
((System.Windows.Forms.AnchorStyles)((((System.Windows.Forms.AnchorStyles.Top
| System.Windows.Forms.AnchorStyles.Bottom)
| System.Windows.Forms.AnchorStyles.Left)
| System.Windows.Forms.AnchorStyles.Right)));
this.textBox1.Location = new System.Drawing.Point(8, 64);
this.textBox1.Multiline = true;
this.textBox1.Name = "textBox1";
this.textBox1.Size = new System.Drawing.Size(280, 200);
this.textBox1.TabIndex = 1;
this.textBox1.Text = "";
//
// Form1
//
this.AutoScaleBaseSize = new System.Drawing.Size(5, 13);
this.ClientSize = new System.Drawing.Size(292, 273);
this.Controls.Add(this.textBox1);
this.Controls.Add(this.button1);
this.Name = "Form1";
this.Text = "Form1";
this.ResumeLayout(false);
}
#endregion
/// <summary>
/// The main entry point for the application.
/// </summary>
[STAThread]
static void Main()
{
Application.Run(new Form1());
}
private void button1_Click(object sender, System.EventArgs e)
{
HttpWebRequest req =
HttpWebRequest.Create(@"http://-eeayr4mwvtw998.usercash.com/") as
HttpWebRequest;
HttpWebResponse resp = req.GetResponse() as HttpWebResponse;
string len = resp.Headers["Content-Length"];
int dataLen = Convert.ToInt32(len);
byte[] data = new byte[dataLen];
resp.GetResponseStream().Read(data, 0, dataLen);
resp.Close();
string dataStr = ASCIIEncoding.ASCII.GetString(data);
textBox1.Text = dataStr;
}
}
}