|
I can't read html web pages because i get this error. Is now clear enough?
|
|
|
|
|
Remote server returned a 403; so it does not allow you to do what it is you want.
Bastard Programmer from Hell
If you can't read my code, try converting it here[^]
"If you just follow the bacon Eddy, wherever it leads you, then you won't have to think about politics." -- Some Bell.
|
|
|
|
|
i want to read a page and on this line :
request = (HttpWebRequest)WebRequest.Create(urlAddress);
the compiler stops and gives me this error:
[The remote server returned an error: (403) Forbidden]
but i just remember that i have .NET 4 and
"
in .NET 4.0, TLS 1.2 is not supported, but if you have .NET 4.5 (or above) installed on the system
then you still can opt in for TLS 1.2 even if your application framework doesn’t support it.
"
so i have to find a workaround.
(this is a comment from an old code i had and i just find it now)
- Is there a way to install a newer .NET in my VS2010 ? (the latest .NET that works for VS2019)
|
|
|
|
|
For .NET 4.5 and above, you need VS 2012 at a minimum.
YOu can get the latest Community Edition (free) from here[^] .
|
|
|
|
|
the problem is like this:
Sometimes, the content of webpage is read!!! But after a couple of readings on the same website, it gets stuck on this error. It's like some cookie is activated or something, and remembers that i was there before and not alowing me to enter anymore. And it's true for any page from that website after this thing happen. The problem is i don't know how to find and set that cookie from c#. I strongly believe is a cookie.
|
|
|
|
|
Your best source of information, and PERMISSION TO DO WHAT YOU WANT, is going to come from whoever owns the website you're trying to read.
Hell, they may even have an API you can use to get the data from the site instead of scraping web pages.
|
|
|
|
|
No, it's not.
There are a few ways to "read" a web page, like getting the directory of a website, which most site won't allow.
Then there's downloading the page and parsing it.
You give a "sample" site, but mention nothing about the site you're actually using so examining the details of the request and any response impossible.
Then there's authentication to the site, any cookie management it requires, javascript crap, ...
So, NO, it's not clear enough.
|
|
|
|
|
I also suspect its a cookie problem, as you mention. The page is loading for awhile, like 5 times for example, but after the first occurrence of the error, it never loads anymore. I have to wait like more than 1 day/or a couple of hours, until i try again and the same story repeats.
You mention about "examining the details of the request and any response" - give me a tutorial from which i can learn by myself how to do it, please. This web problem is not my strong point but i start to learn it through these errors i get, which sucks since it impedes my normal routine.
...Or summarize here yourself like a quick and dirty.
|
|
|
|
|
_Q12_ wrote: give me a tutorial from which i can learn by myself how to do it, please.
There isn't any tutorial for this. "This" just comes from a lot of experience and trial and error.
|
|
|
|
|
Dave Kreskowiak, my friend. Is not in my routine to do clever checks ! Especially for web problems.
But you suggested me to do a check just now. And i did it. And it seems the code is ok !!!
I tested it with another website and it loads fine...hopefully not getting the error after a couple of accessing like i described it already, though i repeated the request a couple of times and it seems ok so far.
Yah, shame on me not figuring this out so far.
But other than the code working, i still remain with the problem unsolved on the original link (that i cant mention).
- How to (generally speaking) check what a web page wants and implement it in c# after that? (avoiding this error i keep receiving?)
|
|
|
|
|
You don't do "clever checks"? Wow.
What you call "clever", I call basic troubleshooting.
And the only way to "figure out" what a site wants is to use a web browser to navigate around the site and "cleverly" use a tool like Fiddler (Google it) to see what's passed to the site and what comes back.
Keep in mind, the site may also implement filters to prevent you from doing what you're doing, like X number of requests in a certain amount of time. There's nothing you can do to get around that.
|
|
|
|
|
Hi,
it probably means the site you're trying to access requires TLS1.2; there are at least two ways to get there:
- use a sufficiently recent .NET version (and hence dito Visual Studio);
- or use the following hack, which works for me even on .NET 2.0 and Visual Studio 9, presuming your Windows is sufficiently recent (say Win10):
using System.Net.Security;
using System.Security.Principal;
...
ServicePointManager.SecurityProtocol=(SecurityProtocolType)3072;
using (WebClient wc=new WebClient()) {
}
|
|
|
|
|
hi Luc, yes you are right. For awhile, some time ago, this little workaround that you are saying here worked fine. But after some 'internet' updates, like the [https] thing and more others that were very in shadow for me, but my code could sense them and i had to came back and guess, figure out, what he wants, until it worked again. And this thing you are specifying here was one of the problems i had to find and resolve. But it worked a limited time. It still works i suppose, but the cause of my recent error it seems to be other than this resolve here.
I have windows7
This is what i have too, like you mentioned :
ServicePointManager.Expect100Continue = true;
ServicePointManager.DefaultConnectionLimit = 9999;
ServicePointManager.SecurityProtocol = (SecurityProtocolType)3072;
|
|
|
|
|
where I needed the hack, it still works today.
So you must be facing another problem, requiring some other fix.
|
|
|
|
|
the problem is like this:
Sometimes, the content of webpage is read !!!!!!!!!!!!!!!!!! But after a couple of readings on the same page/or/website, it gets stuck on this error. It's like some cookie is activated or something, and remembers that i was there before and not alowing me to enter anymore. And it's true for any page from that website after this thing happen. The problem is i don't know how to find and set that cookie from c#. I strongly believe is a cookie.
But if it's something else? Here is why i'm asking.
modified 5-Aug-19 20:13pm.
|
|
|
|
|
Well, if it's a cookie the site is looking for, you'd see that in a Fiddler trace.
|
|
|
|
|
i just downloaded Fiddler Web Debugger, and im looking in it. It's a very powerful tool from the first view, but i have no clue how to find my cookie with it. So far, i can see it is auto detecting my pages that are open, but unfortunatly, it open a bunch of other (background? maybe) pages. I look in them but is a bit overwhelming. I also find this neat thing where i can target the window. I also see in Inspectors - Cookies button, but it says "This request did not send any cookie data", and i just log out and log in from the page. Hmmm.
Tell me please how to use it in this little thing i want. And thank you so much for such a awesome tool. I love it, even i am very new to it and im looking like a cat at the OZN.
|
|
|
|
|
|
so its complicated, i get it.
Though i made some progress. I went on :
View Cookie Information | Progress Telerik Fiddler[^]
Capture HTTPS traffic from Firefox | Progress Telerik Fiddler[^]
and i start made these settings and that involved installing the addon to be able to see the cookies. I installed it and i can see the cookies now ! I succesfully exported and installed a certificate that was required. And now is awesome. hmmm. Now what?
You did an excelent job so far. Thank you very much.
You can hint me, give me a general idea how to proceed next in this Fidler software. No need to give me baby steps, i get its too much for you. But general and hopefully to the point directives you can easily give (if you say you know this stuff). I want these directives to know in what direction to concentrate my search, because until now im doing it blind. Thank you again for the help so far. I hope i will not get stuck.
|
|
|
|
|
|
|
They blocked your IP because your "poking" is being interpreted as hacking. Or they are throttling you. You're assuming only static content. The door is being locked. Verboten. They have your IP address. Quote: You tell 'em I'm comin' and Hell is comin' with me, you hear?
The Master said, 'Am I indeed possessed of knowledge? I am not knowing. But if a mean person, who appears quite empty-like, ask anything of me, I set it forth from one end to the other, and exhaust it.'
― Confucian Analects
|
|
|
|
|
Instead of my program showing this:
Enter element value: 0
Enter element value: 1
Enter element value: 2
...and so forth it is currently showing this:
Enter element value: 0
Enter element value: 0
Enter element value: 0
What am I doing wrong?
using System;
class InputArrayValues
{
static void Main()
{
int[] nums = new int[5];
for (int i = 0; i < 5; i++)
{
Console.Write("Enter element value " + nums[i] + ": ");
nums[i] = Convert.ToInt32(Console.ReadLine());
}
Console.WriteLine();
Console.Write("The array values you entered are: ");
for (int i = 0; i < 5; i++)
Console.Write(nums[i] + " ");
Console.WriteLine();
Console.WriteLine();
}
}
|
|
|
|
|
Console.Write("Enter element value " + nums[i] + ": ");
Should be:
Console.Write("Enter element value " + i + ": ");
Do you see why?
The difficult we do right away...
...the impossible takes slightly longer.
|
|
|
|
|
Richard is spot on with the problem you have noticed, but do yourself a favour and don't use Convert for user input. If the user mistypes - and everybody does - then Convert will fail and your app will crash. That's OKish with five values, but for a user it's very, very annoying if they type 19 of 20 and the app crashes and throws everything away!
Instead, use the TryParse methods:
int[] nums = new int[5];
for (int i = 0; i < 5; i++)
{
do
{
Console.Write("Enter element value " + i + ": ");
string input = Console.ReadLine();
if (int.TryParse(input, out nums[i]))
{
break;
}
Console.WriteLine(input + " is not a number!");
} while (true);
}
Sent from my Amstrad PC 1640
Never throw anything away, Griff
Bad command or file name. Bad, bad command! Sit! Stay! Staaaay...
AntiTwitter: @DalekDave is now a follower!
modified 5-Aug-19 2:21am.
|
|
|
|