質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

ただいまの
回答率

91.25%

  • Java

    10924questions

    Javaは、1995年にサン・マイクロシステムズが開発したプログラミング言語です。表記法はC言語に似ていますが、既存のプログラミング言語の短所を踏まえていちから設計されており、最初からオブジェクト指向性を備えてデザインされています。セキュリティ面が強力であることや、ネットワーク環境での利用に向いていることが特徴です。Javaで作られたソフトウェアは基本的にいかなるプラットフォームでも作動します。

JAVAで自動ログイン機能を作りたい(初心者

解決済

回答 1

投稿

  • 評価
  • クリップ 0
  • VIEW 96

kidaer

score 5

申し訳ありません。プログラム初心者です。

前提・実現したいこと

JAVAで自動ログイン機能を作りたい。
自作のソフトにパスワード入れてボタン押すだけで自動ログインできるもの

fc2のログイン(https://fc2.com/login.php)URLを取得して、
ブラウザ表示はしないけどアクセスしていることにして、
自前のソフトにパスワードを入れてボタンを押すと、
空欄の中にパスワードなどを自動記載して、
ログインボタンを押して進んでくれるというものです。

発生している問題・エラーメッセージ

tamesi.java:29:エラー:シンボルを見つけられません
URL = getContent("http//fc2.com/login.php");

シンボル:変数: メソッド getContent(String)
場所: クラス tamesi
エラー2個

該当のソースコード

import java.awt.BorderLayout;
import java.awt.Container;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JScrollPane;
import javax.swing.JTextArea;
import javax.swing.JTextField;
import java.awt.event.ActionEvent;
import javax.swing.AbstractAction ;
//URLに関して
import java.net.URL;
import javax.net.ssl.HttpsURLConnection;
import java.net.URL;

public class tamesi{ public static void main(String[] args) {

JFrame mainFrame = new JFrame("サンプル");
mainFrame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
mainFrame.setSize(320,160);
mainFrame.setLocationRelativeTo(null);

Container contentPane = mainFrame.getContentPane();

//ネット関連
URL = getContent("https://fc2.com/login.php");

// テキストフィールドのインスタンスを生成
final JTextField textField = new JTextField();

// テキストエリアのインスタンスを生成
final JTextArea textArea = new JTextArea(5,0);

// スクロールペインにテキストエリアを追加
JScrollPane scrollPane = new JScrollPane(textArea);
// ボタンのインスタンスを生成
JButton button = new JButton("追加");
// アクションの定義
button.addActionListener(new AbstractAction(){
public void actionPerformed(ActionEvent arg0) {
textArea.append(textField.getText() + "HttpGet get");
}
});

// パネルをコンポーネントに配置
contentPane.add(textField, BorderLayout.NORTH);
contentPane.add(scrollPane, BorderLayout.CENTER);
contentPane.add(button, BorderLayout.SOUTH);

mainFrame.setVisible(true);

}}

試したこと

まだ勉強中でごちゃごちゃしています。
まずはURLの中身を取得すればいいに違いない!と思い

//ネット関連
URL = getContent("https://fc2.com/login.php");

を足してみたのですが、シンボルエラーが消えません。
どうしたらいいでしょうか?

補足情報(言語/FW/ツール等のバージョンなど)

JAVA コマンドプロント₊メモ帳。
初心者向けのJAVAサイトを参考にしています。

その他にも、

「このサイト見るといいよ!」
「この方法のほうがいいよ!」などあったらアドバイス欲しいです。

よろしくお願いします。

  • 気になる質問をクリップする

    クリップした質問は、後からいつでもマイページで確認できます。

    またクリップした質問に回答があった際、通知やメールを受け取ることができます。

    クリップを取り消します

  • 良い質問の評価を上げる

    以下のような質問は評価を上げましょう

    • 質問内容が明確
    • 自分も答えを知りたい
    • 質問者以外のユーザにも役立つ

    評価が高い質問は、TOPページの「注目」タブのフィードに表示されやすくなります。

    質問の評価を上げたことを取り消します

  • 評価を下げられる数の上限に達しました

    評価を下げることができません

    • 1日5回まで評価を下げられます
    • 1日に1ユーザに対して2回まで評価を下げられます

    質問の評価を下げる

    teratailでは下記のような質問を「具体的に困っていることがない質問」、「サイトポリシーに違反する質問」と定義し、推奨していません。

    • プログラミングに関係のない質問
    • やってほしいことだけを記載した丸投げの質問
    • 問題・課題が含まれていない質問
    • 意図的に内容が抹消された質問
    • 広告と受け取られるような投稿

    評価が下がると、TOPページの「アクティブ」「注目」タブのフィードに表示されにくくなります。

    質問の評価を下げたことを取り消します

    この機能は開放されていません

    評価を下げる条件を満たしてません

    評価を下げる理由を選択してください

    詳細な説明はこちら

    上記に当てはまらず、質問内容が明確になっていない質問には「情報の追加・修正依頼」機能からコメントをしてください。

    質問の評価を下げる機能の利用条件

    この機能を利用するためには、以下の事項を行う必要があります。

質問への追記・修正、ベストアンサー選択の依頼

  • a_saitoh

    2018/01/05 15:30

    なんのために「JAVAで自動ログイン機能を作りたい。」のでしょうか?そっちを質問したほうが有用かもしれませんよ。

    キャンセル

回答 1

checkベストアンサー

+1

URLクラスは使ったこと無いので、詳しいことは言えませんが、

URL = getContent("http//fc2.com/login.php");

以上は、「変数URLに自身のクラス(tamesi)にあるgetContent()メソッドの結果を代入する」という無茶苦茶な処理になっています。

また、getContent()はstaticでは無いので、URLクラスのインスタンスを生成し、そのインスタンスのgetContent()を呼ぶ、といった形でないといけません。


さらに言ってしまうと、申し訳ないですが、初心者の段階でこのようなプログラムを作るのは、ちょっと厳しいかなと思います。
というのも、Javaの基礎的なものに加えて、HTTP(HTTPS)通信の知識なども必要になってくると思われるからです。


あと、ソースコードを記載する場合は「```」で囲むと見やすくなります。

投稿

  • 回答の評価を上げる

    以下のような回答は評価を上げましょう

    • 正しい回答
    • わかりやすい回答
    • ためになる回答

    評価が高い回答ほどページの上位に表示されます。

  • 回答の評価を下げる

    下記のような回答は推奨されていません。

    • 間違っている回答
    • 質問の回答になっていない投稿
    • スパムや攻撃的な表現を用いた投稿

    評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。

  • 2018/01/05 14:53

    返答ありがとうございます!

    JAVAとHTTP(HTTPS)は別物なのでしょうか? アプリなどでもよく見かける機能なので初心者向けの解説があるのではと思っていたのですが、そんな上級者向け機能なんですね。まずは専門用語の方を調べて、HTTP(HTTPS)通信を覗いてみようと思います。ありがとうございました!

    キャンセル

  • 2018/01/05 15:11

    「上級者向け機能」だからという訳ではなく、「Java以外の知識が必要」という意味で書きました。
    使う分にはそこまで深い知識は必要ないかもしれませんが、全く知らない状態だと、そもそもどのように通信すればよいかが分からないと思いましたので、そのように回答しました。
    (URLクラスで取得したものをどうするのかすら書かれていなかったので、そのような知識があるのか疑問だったのもあります)

    それと、このような機能は、場合によっては規約などで禁止されている場合もあるので、その点も注意してください。

    キャンセル

  • 2018/01/07 20:53

    回答ありがとうございます!
    もしよければもう一つ質問させてください。

    実は自動ログインの目的はPHP編集です。自分用のメモ機能が欲しくてさまざまなサービスを覗いたのですが、使いやすいものがなかった為、自分で作れば使いやすいよう改造できるしJAVAを調べてみるのが一番いいんだろうなぁと入門を始めました。たぶん、違法目的ではないと思います。

    その為に、まず手元のPC(自作ソフト)とPHPサーバーの間で情報の送受信がしたいのですが、目的の機能を作るにあたり、どの言語がどれだけ必要なのかわからずに腰を落ち着けられずにいます。JAVAだけでは不可能なのですか? サーブレットがそうなのかなぁと思ったのですが、TomcatのDLが必要らしく「本当にコレなの?」と確信を持てません。調べたいのですが、必要な専門用語からわからない状態です。

    自作ソフトとサーバー間の送受信に関わる専門用語。
    またはそれに必要になる言語名など。

    何が必要なのか教えていただけないでしょうか?
    よろしくお願いします。

    キャンセル

  • 2018/01/07 21:45

    「PHP編集」の意味が、「サーバー上のPHPを実行したい」ということであれば、PHPのURLにアクセスすればよいです。
    試してはいないですが、以下のページを見る限り、JavaだけでもHTTP(HTTPS)通信はできるようです。
    http://web.plus-idea.net/2016/08/httpurlconnection-post-get-proxy-sample/

    あと、サーブレットとは、PHPのようにWebサーバー上で動くJavaのプログラムのことを指します。
    クライアント側で動かすようなプログラムではありません。

    キャンセル

  • 2018/01/08 00:11

    ありがとうございます。
    色々調べてみます!

    キャンセル

15分調べてもわからないことは、teratailで質問しよう!

ただいまの回答率

91.25%

関連した質問

同じタグがついた質問を見る

  • Java

    10924questions

    Javaは、1995年にサン・マイクロシステムズが開発したプログラミング言語です。表記法はC言語に似ていますが、既存のプログラミング言語の短所を踏まえていちから設計されており、最初からオブジェクト指向性を備えてデザインされています。セキュリティ面が強力であることや、ネットワーク環境での利用に向いていることが特徴です。Javaで作られたソフトウェアは基本的にいかなるプラットフォームでも作動します。