Java Network Programming (3rd ed) [Electronic resources] نسخه متنی

اینجــــا یک کتابخانه دیجیتالی است

با بیش از 100000 منبع الکترونیکی رایگان به زبان فارسی ، عربی و انگلیسی

Java Network Programming (3rd ed) [Electronic resources] - نسخه متنی

Harold, Elliotte Rusty

| نمايش فراداده ، افزودن یک نقد و بررسی
افزودن به کتابخانه شخصی
ارسال به دوستان
جستجو در متن کتاب
بیشتر
تنظیمات قلم

فونت

اندازه قلم

+ - پیش فرض

حالت نمایش

روز نیمروز شب
جستجو در لغت نامه
بیشتر
لیست موضوعات
توضیحات
افزودن یادداشت جدید








Chapter 15. URLConnections


URLConnection is an abstract class that represents an
active connection to a resource specified by a URL. The
URLConnection class has two different but related
purposes. First, it provides more control over the interaction with a
server (especially an HTTP server) than the URL
class. With a URLConnection, you can inspect the
header sent by the server and respond accordingly. You can set the
header fields used in the client request. You can use a
URLConnection to download binary files. Finally, a
URLConnection lets you send data back to a web
server with POST or PUT and use other HTTP request methods. We will
explore all of these techniques in this chapter.

Second, the URLConnection class is part of
Java's protocol
handler mechanism, which also includes the
URLStreamHandler class. The idea behind protocol
handlers is simple: they separate the details of processing a
protocol from processing particular data types, providing user
interfaces, and doing the other work that a monolithic web browser
performs. The base java.net.URLConnection class is
abstract; to implement a specific protocol, you write a subclass.
These subclasses can be loaded at runtime by applications. For
example, if the browser runs across a URL with a strange scheme, such
as compress, rather than throwing up its hands
and issuing an error message, it can download a protocol handler for
this unknown protocol and use it to communicate with the server.
Writing protocol handlers is the subject of the next chapter.

Only abstract URLConnection classes are present in
the java.net package. The concrete subclasses are
hidden inside the sun.net package hierarchy. Many
of the methods and fields as well as the
single constructor in the URLConnection class are
protected. In other words, they can only be
accessed by instances of the URLConnection class
or its subclasses. It is rare to instantiate
URLConnection objects directly in your source
code; instead, the runtime environment creates these objects as
needed, depending on the protocol in use. The class (which is unknown
at compile time) is then instantiated using the forName() and newInstance( ) methods of the
java.lang.Class class.


URLConnection does not have
the best-designed API in the Java class library. Since the
URLConnection class itself relies on the
Socket class for network connectivity,
there's little you can do with
URLConnection that can't also be
done with Socket. The
URLConnection class is supposed to provide an
easier-to-use, higher-level abstraction for network connections than
Socket. In practice, however, most programmers
have chosen to ignore it and simply use the Socket
class. One of several problems is that the
URLConnection
class is too closely tied to the HTTP protocol. For instance, it
assumes that each file transferred is preceded by a
MIME header or something very much
like one. However, most classic protocols such as FTP and SMTP
don't use MIME headers. Another problem, one I hope
to alleviate in this chapter, is that the
URLConnection class is extremely poorly
documented, so very few programmers understand how
it's really supposed to work.


/ 164